jquery - 向上/向下滚动到带有固定按钮的部分

标签 jquery html css

我想构建一个脚本来向上/向下滚动到页面的部分标记。我的源代码如下所示:

HTML:

<div class="move">
    <div class="previous">UP</div>
    <div class="next">DOWN</div>
</div>
<section>First</section>
<section>Second</section>
<section>Third</section>
<section>Fourth</section>

CSS:

section{
    height: 400px;
    border: 1px solid black;
}

.move{
    position: fixed;
    bottom: 0;
    right: 0;
}

我还有两个固定在页面底部的按钮。

现在我想制作一个用于向上/向下滚动到部分的脚本。如果有人在这种情况下刷新网页怎么办 - 例如第 2 部分将位于页面顶部?如何确定当前最靠近页面顶部的部分?

Here is fiddle.

最佳答案

以下示例使用页面的当前滚动位置来确定需要滚动到哪个部分元素而不是显式变量,如果用户手动滚动到不同的部分然后按导航按钮。

$(function() {
    var $window = $(window);
    $('.next').on('click', function(){
        $('section').each(function() {
            var pos = $(this).offset().top;   
            if ($window.scrollTop() < pos) {
                $('html, body').animate({
                    scrollTop: pos
                }, 1000);
                return false;
            }
        });
    });

    $('.previous').click(function(){
        $($('section').get().reverse()).each(function() {
            var pos = $(this).offset().top;   
            if ($window.scrollTop() > pos) {
                $('html, body').animate({
                    scrollTop: pos
                }, 1000);
                return false;
            }
        });
    });
});

工作示例:JSFiddle

关于jquery - 向上/向下滚动到带有固定按钮的部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19444717/

相关文章:

javascript - 如何修复 Fotorama 中图像之间的滞后?

javascript - 什么 promise 会得到返回?

javascript - jQuery 模态弹出窗口 - 回发后输入类型设置为 null

html - 将文本定位在 html 元素的绝对中心

html - 用跨度包裹 DOM 结构并降低不透明度不起作用。为什么?

javascript - 如何全局处理 fancybox 的 onClose 事件?

javascript - 如何自动对 HTML 表格中共享相同名称的输入值框求和?

html - 悬停时将 slider 箭头移至 "glow"

html 内容以相同的缩进开始

Javascript 不适用于最大/最小按钮?