HTMLテキストフィールドのtextareaの高さの増加、ラップ

次のようにテキストフィールド、エネルギー自給の高さを、ラップ:

HTML:

<TEXTAREA行= "1" クラス= "answerTextArea" MAXLENGTH = "60"> </ TEXTAREA>

CSS:

.answerTextArea { 100% 
    高さ自動 ; 
    国境なし ; 
    概要なし
    フォントサイズ0.6rem#FFF ; 
    背景なし
    ボックスサイズボーダーボックス ; 
    パディング0.4rem 0 ; 
    border-bottom1pxの固体#FFF ; 
}

jsの機能を実現します:

// 入力テキストフィールドを監視し、自動的に高さ変化
関数makeExpandingArea(EL){
    VARのタイマ= NULL ;
    // IE8スタックオーバーフローの問題ので、ここでは調整される
   VARのsetStyleを= 関数(EL、オート){
        IF(オート)EL。 = style.height '自動車' ; 
       el.style.height = el.scrollHeight + 'PX' ; 
   } 
   VARの delayedResize = 関数(EL){
        IF (タイマ){ 
           てclearTimeout(タイマ); 
           タイマ = NULL ; 
       } 
       タイマーのsetTimeoutを(= 機能(){ 
           のsetStyle(EL)
       }、 200 )。
   } 
   であれば(el.addEventListener){ 
       el.addEventListener( '入力'、関数(){ 
           でsetStyle(EL、 1 ); 
       }、)。
       setStyle(EL)
   } そう であれば(el.attachEvent){ 
       el.attachEvent( 'onpropertychange'、関数(){ 
           のsetStyle(EL)
       })
       のsetStyle(EL)
   } 
   場合(window.VBArray && window.addEventListener){ // IE9
       el.attachEvent( "にonKeyDown"、関数(){
            VARのキー= window.event.keyCode;
            場合(キー== 8 ||キー== 46 )delayedResize(EL); 

       }); 
       el.attachEvent( "のoncut"、関数(){ 
           delayedResize(EL); 
       }); // 处理粘贴
   } 
} 

// 监听文本换行
関数exeTextLine(OBJ){
     場合(OBJ == "" ){
         VARの textareaList = document.getElementsByClassName( 'answerTextArea' )。
        
        VARi = 0; iはtextareaList.length <; iは++ ){ 
            makeExpandingArea(textareaList [I])。
        } 
    } { 
        makeExpandingArea(OBJ)。
    } 
    
} 

exeTextLine( "")。

結果は以下の通りであります:

 

おすすめ

転載: www.cnblogs.com/nanyang520/p/11230765.html