gpt4 book ai didi

javascript - 如何控制 Angular 滚动条?

转载 作者:太空宇宙 更新时间:2023-11-04 10:44:01 25 4
gpt4 key购买 nike

基本上我在聊天网络应用程序中工作。

它的工作原理应该与 gchat 非常相似。我的意思是,如果 srollbar 位于 div 的中间,它应该显示一条警告,说明您有一条新消息。如果滚动条在底部,它应该直接显示新消息。

所以我的主要问题是,我如何知道滚动条的 Angular 。

有什么线索吗?

最佳答案

这是一个例子。毫无疑问,它需要努力使其跨浏览器兼容,但它已使您完成了大约 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="angular.js@*" 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>

关于javascript - 如何控制 Angular 滚动条?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35585567/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com