国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

div實現自適應高度的textarea實現angular雙向綁定

2019-11-19 18:05:06
字體:
來源:轉載
供稿:網友

相信不少同學模擬過騰訊的QQ做一個聊天應用,至少我是其中一個。

過程中我遇到的一個問題就是QQ輸入框,自適應高度,最高高度為3row。

如果你也像我一樣打算使用textarea,那么很抱歉,你一開始就錯了。

textarea不是不可以的,然后我是這樣錯的。(就是監聽scroll 如果出現了,就增加1rows 的高度)然而這樣真的很挫

 textarea.bind('change','keydown'){ if(scrollTop > 0 ) { textarea.rows += 1 }}

正確的打開方式應該是利用 html5 全局屬性,然而在ios 移動端中,僅使用contenteditable,是無法獲得焦點的,無法進行輸入的,因此需要添加use-select屬性

<div contenteditable='true' style='-webkit-use-select:text'></div>  //不同瀏覽器,支持度,和實現方式也有點不一樣,android和ios默認webkit內核,所以使用這個夠了

在angular中使用可編輯的div:――》 angular的ng-model指令只用于select,input,textarea,不適用于div,所以要進一步封裝

/** 可編輯的div* 應用于發表評論中有表情的時候,div中添加img(表情)* <div contenteditable strp-br='true' style='-webkit-use-select:text'></div>*/app.directive('contenteditable', function() { return { restrict: 'A',  require: '?ngModel',  link: function(scope, element, attrs, ngModel) { if (!ngModel) return;  ngModel.$render = function() { element.html(ngModel.$viewValue || ''); }; element.on('blur keyup change', function() { scope.$evalAsync(read); }); read(); // initialize function read() { var html = element.html(); if ( attrs.stripBr && html == '<br>' ) { //清除 <br>  html = ''; } ngModel.$setViewValue(html); } } };});

以上就是本文的全部內容,希望本文的內容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持武林網!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 陈巴尔虎旗| 临西县| 东阿县| 长子县| 乌海市| 海口市| 济源市| 叙永县| 大冶市| 麟游县| 宣汉县| 故城县| 海原县| 陆良县| 周至县| 新龙县| 两当县| 南投县| 渑池县| 城市| 马公市| 石嘴山市| 牡丹江市| 康乐县| 长子县| 元氏县| 抚远县| 西丰县| 新竹县| 武隆县| 盐亭县| 施甸县| 天祝| 台江县| 花莲市| 永清县| 华容县| 神农架林区| 芦山县| 贵定县| 余庆县|