繁体   English   中英

鼠标滚动 - 捕捉到div

[英]Mouse scroll - snap to divs

我目前有一个页面的形式

<div id="content">
    <div id="content-page-1">
    <!--content-->
    </div>
    <div id="content-page-2">
    <!--content-->
    </div>
</div>

有没有办法滚动

  1. 粘贴/捕捉到div(这些是显示区域的100%高度和100%宽度)
  2. 检测到滚动时自动滚动到下一个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>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM