Bu basit işlevi yazdım ve gayet iyi çalışıyor ama biraz daha iyi yapmaya çalışıyorum.textarea yükseklik eğimi akış hızı sorununu düzeltmek için
Kaydırma yüksekliği değiştiğinde yeniden boyutlandıran bir textarea'm var, yani enter tuşuna bastığımda (yani satır aşağı - \ n), kaydırma yüksekliği yalnızca metinden sonra güncelleştirildiğinden yüksek hızda bir sıçrama olur. girilir. İşte ...
Şimdilik ben css overflow:hidden
ile çözdük ama onun değil mükemmel ... Ben de olayı girmek yakalamaya çalıştık ama yükseklik çok çabuk değişir çünkü sorunlu oldu söz konusu kod olan jsfiddle'dur.
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;
}
pürüzsüz bir efekt elde etmek için css'ye bir geçiş efekti ekleyebilirsiniz http://jsfiddle.net/Ly00jnfm/3/ –