【问题标题】:if scroll, go top? [closed]如果滚动,到顶部? [关闭]
【发布时间】:2014-01-17 02:03:46
【问题描述】:

例如。如果用户使用他的滚动从我网站的下部返回^,我希望他一直被反弹回来。并且无法停留在网站的中途。

一个简单的 jquery 缓动函数,附带一个滚动函数。有没有人在这里消费这方面的知识,如果是的话:我会非常满意!

祝你有美好的一天。

【问题讨论】:

标签: jquery css scroll


【解决方案1】:

这应该适用于所有浏览器:

$(document).ready(function () {

    if (document.addEventListener) {
        document.addEventListener("mousewheel", MouseWheelHandler, false); //IE9, Chrome, Safari, Oper
        document.addEventListener("DOMMouseScroll", MouseWheelHandler, false); //Firefox
    } else {
        document.attachEvent("onmousewheel", MouseWheelHandler); //IE 6/7/8
    }


   function MouseWheelHandler(){

        // cross-browser wheel delta
        e = window.event || e;
        var delta = Math.max(-1, Math.min(1, (e.wheelDelta || -e.detail)));

        //scrolling up?
        if (delta >= 0) {
            $('body').scrollTop(0);
        }
    }
});

【讨论】:

  • 非常感谢你!真的很感激!
  • @Joel 请再次查看我的回答。我忘了它在 Firefox 中不起作用。我已经用正确的解决方案更新了它。另外,如果您觉得它有用,请接受它:)
  • 你好,是的,它工作得很好。我已经尝试过跨浏览器,它似乎工作正常(即使在 IE ^^ 中)。但是,我不确定我在应用 .animate({},2000); 时做错了什么任何想法为什么它不起作用?
  • 然而,自从你上次更新以来。第 21 行似乎有错误。我试图找到不正确的结束标记,但找不到。 ://
  • @Joel 再试一次,最后的第二个) 错误应该是}。我已经更新了答案。
【解决方案2】:

尝试一下:

$(document).ready(function(){
   $(document).on('mousewheel', function(e){
      if(e.originalEvent.wheelDelta > 0) { // if scrolling towards up
          $('body').scrollTop(0);
      }          
   });
});

【讨论】:

  • 这也适用于向下滚动...
  • 这在 Firefox 上不起作用
  • 非常感谢您的回答(解决方案)Zaheer。即使它没有 100% 工作,也许你可以帮助我在 Alvaro 的回答(因为我无法让它工作)问候上实现一个动画解决方案。
  • @Zaheer 向下滚动出于某种奇怪的原因......(使用您发布的代码)
猜你喜欢
  • 2012-10-25
  • 2013-04-11
  • 1970-01-01
  • 2023-04-02
  • 1970-01-01
  • 2016-05-06
  • 1970-01-01
  • 1970-01-01
  • 2022-11-27
相关资源
最近更新 更多