javascript - Textarea高度自适应,addEventListener("input", funcName);无效
巴扎黑
巴扎黑 2017-04-11 13:22:23
0
3
463

参照的思路是segmentfault以前提过的问题

对前端不是很了解,基本完全按照上面的那个思路写的。但是在Chrome53上面运行还是会出现scrollbar,不会自适应高度。请问这是不是有可能是addEventListener无法接听input事件呢?

html代码


js代码

function makeExpandingArea(container) { var area = container.querySelector('textarea'); var span = container.querySelector('span'); area.addEventListener('input', function() { span.textContent = area.value; }, false); span.textContent = area.value; } var areas = document.querySelectorAll('p'); var l = areas.length; console.log("%d", l); while (l--) { makeExpandingArea(areas[l]); }

css代码 

.expandingArea{ position:relative; } textarea{ position:absolute; top:0; left:0; height:100%; } pre{ display:block; visibility:hidden; }

如果这个方法行不通的话能不能推荐一些可行的方法?主要用处是做一个博客的评论框,因为要提交form,所以又不能使用p的contenteditable="true"属性。

巴扎黑
巴扎黑

membalas semua (3)
大家讲道理

input是什么事件,根本没听说过

    左手右手慢动作

    应该是onkeydown事件吧

      Ty80
            
      
          

      基本思路:利用另外一个html标签元素,设置成跟textarea一样的样式,当textarea输入文字内容时候,就将内容填充到该标签元素内,然后再将该元素的高度赋值给textarea;为什么要用pre标签,因为它不仅要接收textarea的文字内容,还要接收格式,比如回车,只有pre标签能够以原格式输出,如果是别的html标签就需要额外写css了

        Muat turun terkini
        Lagi>
        kesan web
        Kod sumber laman web
        Bahan laman web
        Templat hujung hadapan
        Tentang kita Penafian Sitemap
        Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!