解释起来有点棘手,所以解决这个问题最简单的方法就是转到docs并比较Firefox(按预期完美运行)和chrome(scrollIntoView不工作)之间的行为)。
基本上,我有一个左列菜单,但我不想放置一个位置:固定,所以它是一个带有浮点数的相对位置。所以主要内容的滚动是溢出的。
现在,我有一个欢迎"占据访客所有屏幕高度的图像。我创建的行为是当访问者向下滚动时,它直接到达图像的末尾。当访问者位于图像下方并向上滚动时,它会直接进入图像的顶部。除此之外,文本中的滚动工作正常。
Firefox的一切正常,但Chrome并未按预期滚动到视图中。请参阅上面链接的网站中的scroll.js文件,console.log显示chrome正在捕获wheel事件并输入scrollIntoView但不会滚动。
这是我应该报告的chrome中的错误吗?
感谢
答案 0 :(得分:0)
您必须查看WheelEvent.deltaMode
值,以了解 brwoser报告轮子事件的方式:
WheelEvent.deltaMode
只读
返回一个无符号长整数,表示增量值滚动量的单位。允许的值是:
Constant Value Description
DOM_DELTA_PIXEL 0x00 The delta values are specified in pixels.
DOM_DELTA_LINE 0x01 The delta values are specified in lines.
DOM_DELTA_PAGE 0x02 The delta values are specified in pages.
在浏览器中标准化轮子事件的好库是https://github.com/basilfx/normalize-wheel