text区域高度请求滚动高度流问题
textarea height equel to scrollheight flow issue
我写了这个简单的函数,它运行得很好,但我正在努力让它变得更好。
我有一个文本区域,当滚动高度改变时会调整大小,问题是当我按下回车键(即向下一行-''n)时,高度会随着更新而跳跃,因为滚动高度只有在输入文本后才会更新。
目前我已经用css overflow:hidden
解决了它,但它并不完美。。。我也试着参加了进入比赛,但由于高度变化太快,所以出现了问题。。。
这是一个jsfiddle,其中的代码有问题。
JS:
var app = angular.module('myModule', []);
app.controller('myCtrl', function ($scope, $timeout) {
$scope.ModelData = "";
$scope.modelScrollHeight = document.getElementById('textareaId').scrollHeight;
$scope.getScrollHeight = function(){
$scope.modelScrollHeight = document.getElementById('textareaId').scrollHeight;;
return $scope.modelScrollHeight;
}
});
HTML:
<div ng-controller = "myCtrl">
<div class="omeromer" style="" >
<textarea
ng-style="{'min-height':(!ModelData || ModelData.trim() === '') ? '40px' : modelScrollHeight+'px'}"
style="border: none;resize:none;border-color: #EFEFEF; "
ng-model="ModelData" ng-change="getScrollHeight()" id="textareaId" class="wm-noteList-text-overflow"
> </textarea>
<pre>"val: "{{ModelData|json}}</pre>
<pre>"split "{{ModelData.split(''n').length - 1|json}}</pre>
<pre>"length: "{{ModelData.length|json}}</pre>
<pre>"scrollHeight: "{{modelScrollHeight|json}}</pre>
</div>
</div>
CSS:
.wm-noteList-text-overflow{
width:200px;
//overflow:hidden;
}
将调整大小函数放在angular的内部$formatters
数组中怎么样?
一个jsfiddle
app.directive('autoHeight', function () {
return {
require : '?ngModel',
restrict: 'A',
link : function (scope, element, attrs, ngModel) {
var node = element[0];
function refresh () {
node.style.height = null;
node.style.height = node.scrollHeight + 'px';
}
if (ngModel) {
ngModel.$formatters.push(function (value) {
refresh();
return value;
});
}
element.on('input', refresh);
refresh();
}
};
});
您是否尝试将ng-trim=false
添加到文本区域?它似乎起了作用。
否则,这里也会提出类似的问题,我建议尝试那里提出的一些解决方案。
相关文章:
- Javascript高度问题
- 活动菜单 部分高度问题
- 谷歌登录按钮的宽度和高度问题
- 适合页面.高度问题
- jquery循环滑块高度问题
- 当内容显示在FireFox的iFrame中时,jQuery高度问题
- DHTMLX 移动调度程序事件详细信息视图高度问题
- 安卓平板电脑上的单页网页应用程序高度问题
- 纸材料聚合物中的高度问题
- 幻灯片自动高度问题
- 引导模态元素的高度问题
- 使用 ajax (MVC) 的 JQuery UI 可折叠高度问题
- 砌体/动态幻灯片高度问题
- 滚动窗格高度问题
- 完整日历高度问题
- jQuery跨域Iframe高度问题
- 结合jQuery对话框和选项卡时的高度问题
- 手风琴高度问题
- KineticJS的图像宽度和高度问题
- JQuery手风琴高度问题