滚动IntoView,当被滚轮事件引发时,平滑行为在镶边中不起作用



解释起来有点棘手,所以也许理解这个问题的最简单方法是访问网站并比较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

最新更新