2016-02-23 2 views
0

В основном я работаю в веб-приложении чата.Как управлять полосой прокрутки в угловом?

Он должен работать очень похоже на gchat. Я имею в виду, если прогулочная панель находится в середине div, она должна показать предупреждение о том, что у вас есть новое сообщение. Если полоса прокрутки находится внизу, она должна показывать прямо новое сообщение.

Так что моя главная проблема, как я могу узнать, где, если полоса прокрутки от углового.

Любые подсказки?

+0

http://stackoverflow.com/questions/16844435/angular-js-implementing-custom-scrollbar –

+0

http://stackoverflow.com/a/3898152/259457 – Travesty3

ответ

1

Вот пример. Это, несомненно, требует работы, чтобы сделать его совместимым с кросс-браузером, но он доставит вам около 90% пути.

https://plnkr.co/edit/9OhQNEz58GW47uPR0frq?p=preview

var app = angular.module('scroll', []); 
 
app.controller('scrollController', function($scope, $interval) { 
 
    // simulate receiving a message 
 
    $interval(function() { 
 
    $scope.$broadcast('message-received'); 
 
    }, 5000); 
 
}); 
 
app.directive('chatWindow', function() { 
 
    return { 
 
    restrict: 'A', 
 
    scope: {}, 
 
    link: function(scope, elem) { 
 
     scope.$on('message-received', function() { 
 
     elem = angular.element(elem); 
 
     if (elem[0].scrollHeight - elem[0].scrollTop != elem[0].clientHeight) { 
 
      console.log('Message Received'); 
 
     } else { 
 
      console.log('at bottom'); 
 
     } 
 
     }); 
 
    } 
 
    }; 
 
});
[chat-window] { 
 
    border: 1px solid #CCC; 
 
    height: 100px; 
 
    overflow-y: auto; 
 
}
<!DOCTYPE html> 
 
<html> 
 

 
    <head> 
 
    <script data-require="[email protected]*" data-semver="1.5.0" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.0/angular.js"></script> 
 
    <link rel="stylesheet" href="style.css" /> 
 
    <script src="script.js"></script> 
 
    </head> 
 

 
    <body ng-app="scroll" ng-controller="scrollController"> 
 
    <div chat-window> 
 
     <br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /> 
 
    </div> 
 
    </body> 
 

 
</html>

Смежные вопросы