解释起来有点棘手,所以也许理解这个问题的最简单方法是访问网站并比较Firefox(按预期完美工作(和chrome(scrollIntoView不起作用(之间的行为。
基本上,我有一个左列菜单,但我不想放置一个位置:固定,所以它是一个带有浮点数的相对菜单。所以主要内容的滚动是溢出-y on .
现在,我有一个"欢迎"图像,它占用了访问者的所有屏幕高度。我创建的行为是当访问者向下滚动时,它会直接滚动到图像的末尾。当访问者位于图像下方并向上滚动一点时,它会直接转到图像的顶部。除此之外,文本中的卷轴工作普通。
Firefox 一切正常,但 Chrome 没有按预期滚动到视图中。请参阅上面链接的网站中的scroll.js文件,控制台.log显示chrome正在捕获滚轮事件并进入scrollIntoView,但不滚动。
这是我应该报告的 chrome 中的错误吗?
谢谢
您必须查看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