【问题标题】:Scroll event not working on chrome and not precise in firefox滚动事件在 chrome 上不起作用并且在 Firefox 中不精确
【发布时间】:2018-02-06 17:17:02
【问题描述】:

我尝试为我的网站构建自定义滚动条,但它并不完美,我不知道如何改进它。它应该从一个位置滚动到另一个特定位置,但是每个滚动事件都会出现更大的像素差异。它似乎也不适用于 chrome。

这里是 html 文件的链接:http://infographie.inraci.be/blc/blc.html

这里是代码:

$(window).bind('mousewheel DOMMouseScroll', function(event){

var hauteur5 = $(window).height();
var scroll5 = $(window).scrollTop();

         if (event.originalEvent.wheelDelta > 0 || event.originalEvent.detail < 0) {

        $(window).scrollTo(scroll5-hauteur5/4,1,function(){

      })
} else { 
  $(window).scrollTo(scroll5+hauteur5/4,1,function(){
 })
  }
 });

【问题讨论】:

  • 您是否尝试过更改它以使用文档而不是窗口?
  • 我刚试过,但似乎效果不佳。
  • 另外,使用通用的$(document).on('scroll') 而不是花里胡哨.. jQuery 旨在处理浏览器的不一致,所以让它来吧
  • 当我使用 $(document).on('scroll') 它对它们都不起作用
  • 我发现为什么它在谷歌浏览器中不是很流畅。我只是把溢出隐藏在身体上,现在它在 chrome 中工作。

标签: javascript jquery html css


【解决方案1】:

如果你想检查这个sn-p:https://stackoverflow.com/a/38572744/3605379

在那里,我检查了超时的周速度。玩它,这样你就可以把握好时机。

【讨论】:

  • 谢谢,但我不知道如何用它来解决我的问题
  • 对不起。我会在您的代码中查看您设置每个元素在浏览器上的位置。对我来说,只使用 "$(".elementClass.").scrollTo() 而不使用高度或位置会更容易,因为当你调整浏览器大小时它会改变。
  • 因为它每次滚动都会测量高度,如果我调整窗口大小无关紧要?对不起,我没有经常使用 jquery,所以也许我不明白。
  • 现在我已经用你的 "$(".elementClass.").scrollTo() 的想法解决了它。谢谢......但是因为它们都有相同的类名,我该如何滚动到下一行元素?
  • 现在我使用这个解决方案,它可以工作,但我认为它很糟糕:) var zz=0 $(document).on('mousewheel DOMMouseScroll', function(event){ if (event.originalEvent .wheelDelta > 0 || event.originalEvent.detail
猜你喜欢
  • 1970-01-01
  • 2016-03-01
  • 1970-01-01
  • 2012-06-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-24
  • 2022-01-18
相关资源
最近更新 更多