我目前有一个页面形式为
<div id="content">
<div id="content-page-1">
<!--content-->
</div>
<div id="content-page-2">
<!--content-->
</div>
</div>
有什么办法可以滚动
- 粘贴/捕捉到 div(这些是显示区域的 100% 高度和 100% 宽度)
- 检测到滚动时自动滚动到下一个 div
用jQuery?
我目前有一个页面形式为
<div id="content">
<div id="content-page-1">
<!--content-->
</div>
<div id="content-page-2">
<!--content-->
</div>
</div>
有什么办法可以滚动
用jQuery?
如果您在节点上监听滚动事件,您可以轻松地使用像scrollTo这样的插件来平滑滚动到“下一个 div”或上一个 div(无论您如何定义)。
var prevScrollTop = 0;
var $scrollDiv = $('div#content');
var $currentDiv = $scrollDiv.children('div:first-child');
$scrollDiv.scroll(function(eventObj)
{
var curScrollTop = $scrollDiv.scrollTop();
if (prevScrollTop < curScrollTop)
{
// Scrolling down:
$currentDiv = $currentDiv.next().scrollTo();
}
else if (prevScrollTop > curScrollTop)
{
// Scrolling up:
$currentDiv = $currentDiv.prev().scrollTo();
}
prevScrollTop = curScrollTop;
});
我尝试了不同的插件,但它们都在 mvc 中触发多个事件时遇到了问题,所以我使用 underscore.js 提出了这个解决方案
<script type="text/javascript">
$(document).ready(function () {
var isc = _.throttle(function (event) {
if ($(window).scrollTop() + $(window).height() > $(document).height() - 200) {
if (event.handled !== true) {
$.post('@path', function (html) {
$('#user-feed').append(html);
});
}
}
}, 300);
$(window).scroll(isc);
});
</script>