需求是導(dǎo)入文件內(nèi)容新蟆,textarea文本框自動(dòng)增加高度
/**
elem:傳入對(duì)象($('#div'))
scroll:是否顯示滾動(dòng)(true/false)
*/
var autoTextareaHeight = (elem, scroll) => {
if (elem instanceof jQuery) {
elem.css('overflow-y', scroll ? 'scroll' : 'hidden').css('height', elem[0].scrollHeight)
} else {
elem.style.height = elem.scrollHeight;
elem.style.overflowY = scroll ? 'scroll' : 'hidden';
}
}
autoTextareaHeight($('#liveRoomURL'), true) //jquery調(diào)用,顯示滾動(dòng)條
//js調(diào)用婚陪,不顯示滾動(dòng)條
let textarea = document.getElementById(‘liveRoomURL’);
autoTextareaHeight(textarea,false)
如果要使用監(jiān)聽(tīng)最好使用oninput而不是onchange:
onkeyup
使用復(fù)制粘貼時(shí),高度不能自動(dòng)改變
onchange
事件:在內(nèi)容改變(兩次內(nèi)容有可能相等)且失去焦點(diǎn)時(shí)觸發(fā)频祝,不能實(shí)時(shí)同步
oninput
事件:HTML5 的標(biāo)準(zhǔn)事件泌参,可以用來(lái)檢測(cè)元素通過(guò)用戶界面發(fā)生的內(nèi)容變化,在內(nèi)容修改后立即被觸發(fā)
我這邊是監(jiān)聽(tīng)回車鍵常空,每次回車則重新設(shè)置高度
$("#liveRoomURL").keydown(function(e) {
if (e.keyCode == 13) {
autoTextareaHeight($('#liveRoomURL'), true)
}
});