javascript - 滚动到 div 顶部

标签 javascript jquery html scroll

我正在尝试创建类似 http://deathtrap.co/ 的内容- 当您滚动时,您会自动转到下一个或上一个 div 的顶部

$(window).bind('scroll', function () {
      $('html, body').animate({scrollTop:$('#scroll-over').position().top}, 'slow');

});

这可以滚动到下一个 div,但随后您无法向上滚动。 我只有想要在两个部分之间滚动的部分。

<div id = "banner">
   content
</div>
<div id ="scroll-over">
  content
</div>

最佳答案

在 jQuery 中执行以下操作:

首先将当前 div 设置为 1,因为网站从顶部开始。 然后你可以看到我实现了一个函数来指示用户是向上还是向下滚动。如果他向下滚动,您将当前的 div 设置为 2。jQuery 将向下滚动到该 div。请记住,您必须提供正确的 ID。

var currentDiv = 1;

var mousewheelevt = (/Firefox/i.test(navigator.userAgent)) ? "DOMMouseScroll" : "mousewheel" //FF doesn't recognize mousewheel as of FF3.x
$('html, body').bind(mousewheelevt, function(e){

    var evt = window.event || e //equalize event object     
    evt = evt.originalEvent ? evt.originalEvent : evt; //convert to originalEvent if possible               
    var delta = evt.detail ? evt.detail*(-40) : evt.wheelDelta //check for detail first, because it is used by Opera and FF

    if(delta > 0) {
        //scroll up
        currentDiv = 1;
        $('html, body').animate({
            scrollTop: $("#"+currentDiv).offset().top
        }, 500);
    }
    else{
        //scroll down
        currentDiv = 2;
        $('html, body').animate({
            scrollTop: $("#"+currentDiv).offset().top
        }, 500);
    }   

});

假设你的 html 看起来像这样:

<div id = "1">
   content
</div>
<div id ="2">
  content
</div>

如果将它们的高度设置为 100%,则可以在它们之间滚动。稍后我会发布一个实例。

关于javascript - 滚动到 div 顶部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38926624/

相关文章:

javascript - 将参数传递给 matchmedia addListener 回调函数

javascript - 使用 jQuery 触发 HTML5 验证

javascript - 为什么我的 Knockout Radio 按钮在另一个具有点击绑定(bind)的元素中时会失败?

javascript - 如何在不使用类名的情况下从类中访问类本身

javascript - 使用 JS 和介绍在点击时显示/隐藏 div

添加的 html 不会执行 Javascript

java - JSP中如何对齐元素的输出?

javascript - 语言 ="javascript"与类型 ="text/javascript"

javascript - 为什么 JavaScript 中对象 const 定义后可以更改?

Chrome、FF、IE 高度滚动上的 Javascript 事件(添加样式)