Jquery Slim Scroll и Angular JS, Как исправить прокрутку внизу div? - PullRequest
0 голосов
/ 17 декабря 2018

Я пытаюсь создать вид веб-приложения для чата.Для UX я хочу исправить slimscroll нижней части div.enter image description here

Для этого я написал свой код в HTML,

<div class="ibox-content" slim-scroll>
     <div ng-repeat="chat in chats track by $index">
         <p>{{chat}}</p>
     </div>
</div>

, и объявил директиву angularjs следующим образом.

function slimScroll($timeout){
   return {
       restrict: 'A',
       scope: {
           boxHeight: '@'
       },
       link: function(scope, element) {
           $timeout(function(){
               element.slimscroll({
                   height: '75vh',
                   railOpacity: 0.9,
                   scrollTo: element.scrollHeight,
                   start: 'bottom'
               });
           });
       }
   };
}

Но я думаю, scrollTo: element.scrollHeight, не работает.Что я должен делать?Есть идея, чтобы это исправить ??

Ответы [ 2 ]

0 голосов
/ 18 декабря 2018

Я не думаю, что ваш подход сработает - прочитав документацию для Jquery Slim Scroll, я думаю, вам нужно будет звонить element.slimscroll каждый раз, когда вы получаете новое сообщение чата, а не тольконачальная загрузка.

Один из способов сделать это - разрешить директиве slim scroll принимать массив.Вы можете $ наблюдать за этим массивом, чтобы увидеть, изменится ли его длина, затем вы можете вызвать scrollTo для элемента.

0 голосов
/ 18 декабря 2018

Элемент возвращает объект angular.element.Вам нужно element[0], чтобы получить нативный элемент.

function slimScroll($timeout){
   return {
       restrict: 'A',
       scope: {
           boxHeight: '@'
       },
       link: function(scope, element) {
           $timeout(function(){
               element.slimscroll({
                   height: '75vh',
                   railOpacity: 0.9,
                   scrollTo: element[0].scrollHeight,
                   start: 'bottom'
               });
           });
       }
   };
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...