ionic3-輸入框動(dòng)態(tài)縮放

在做聊天窗口的時(shí)候遇到一個(gè)問(wèn)題,就是輸入框輸入多行文字之后沒(méi)有自動(dòng)變高,現(xiàn)在很多流行的社交軟件如微信、QQ中都至少輸入4行之后才將多余的部分隱藏,所以問(wèn)題來(lái)了,怎樣在輸入的時(shí)候輸入框動(dòng)態(tài)變高,當(dāng)高度到達(dá)四行之后就保持不變,消息發(fā)送之后又變回原來(lái)的高度。

1.html中給texteara添加input事件:

<ion-textarea  cols="30" rows="1"  [(ngModel)]='talkvalue'  (input)="updateEditor()"></ion-textarea> 

2.在ts中注入ElementRef模塊,并引入:

import { ElementRef } from '@angular/core';
export class ChatPage {
  constructor(public element :ElementRef){
  }
}

3.在函數(shù)內(nèi)獲取到dom元素,使用元素的scrollHeight屬性獲取元素的動(dòng)態(tài)高度,并賦值給height:

updateEditor(){
  let el = this.element.nativeElement.querySelector("textarea");
  el.style.overflow = "hidden";
  el.style.height = "auto";
  if (el['scrollHeight'] <= 84) { //給輸入框設(shè)定一個(gè)最大的高度
        el['style'].height = el['scrollHeight'] + "px";
  }else {
       el['style'].height = "80px";
  }
}

4.在發(fā)送完消息后將輸入框變回原來(lái)的高度:

send(){
  ...
  this.talkvalue= '';
  let el = this.element.nativeElement.querySelector("textarea");
  el.style.height = "25px";
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • HTML標(biāo)簽解釋大全 一、HTML標(biāo)記 標(biāo)簽:!DOCTYPE 說(shuō)明:指定了 HTML 文檔遵循的文檔類(lèi)型定義(D...
    米塔塔閱讀 3,520評(píng)論 1 41
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,725評(píng)論 25 709
  • 很久很久之前,我們還是一個(gè)涉世未深的孩子,一直接受著來(lái)自四面八方的教育。 很久很久之后,我們?nèi)缭敢詢(xún)數(shù)爻蔀榱艘幻?..
    云一莫閱讀 536評(píng)論 0 3
  • [太陽(yáng)]窩友們,每天一碗燕窩,人體更新周期是28天,如果堅(jiān)持 兩個(gè)月以上就能明顯感覺(jué)效果 【紫燕禧*燕窩魚(yú)膠】[呲...
    peko300閱讀 229評(píng)論 0 0
  • 唐太宗李世民喜愛(ài)收藏書(shū)畫(huà),尤其喜愛(ài)收藏王羲之的詩(shī)書(shū)字畫(huà),幾乎到了癡迷的程度。據(jù)說(shuō)他為了得到王羲之的《蘭亭集...
    天津抱誠(chéng)齋寒冰閱讀 1,301評(píng)論 0 0

友情鏈接更多精彩內(nèi)容