【发布时间】:2020-04-09 17:15:02
【问题描述】:
我一直在尝试将 scroll 事件绑定到页面上的元素,并在滚动时加载更多内容,例如 Twitter 或 Facebook。
HTML
<div id="main-content">
<ul class="event-list big row" id="event-list">
...
</ul>
</div>
CSS
#main-content {
width: 984px;
overflow: visible;
margin: 0 auto;
color: #101010;
width: 974px;
padding: 10px 0 7px 0;
}
#main-content .event-list.big {
width: 1080px;
padding: 0 0 20px 0;
}
JS代码
$('#event-list').scroll(function() {
var curScroll = $(this)[0].scrollTop,
maxScroll = $(this)[0].scrollHeight - $(this).height();
console.log(curScroll, ' :: ', maxScroll);
if ((curScroll >= maxScroll - 200) && !loading) {
loading = true;
$(this)[0].scrollTop = curScroll;
$('.loading').fadeIn('fast');
if (page <= $('.page').length) {
loadMore();
}
}
});
scroll 事件在我滚动时不会触发,它甚至不会打印出 curScroll 和 maxScroll。
可能是什么导致了问题,可能是 CSS 样式错误或我的 js 代码错误?
【问题讨论】:
-
你把 JS 代码放在 $(function() { /** here **/ }); 中了吗?如果不是,则在代码执行时元素尚未加载,因此事件未绑定。
-
我也刚刚读到,滚动是在窗口、框架、iframe 和溢出的元素上触发的:滚动。所以我想你应该添加溢出:滚动到#event-list
标签: jquery html css scroll jquery-events