0

解释起来有点棘手,因此了解问题的最简单方法可能是访问网站并比较 Firefox(按预期完美运行)和 chrome(scrollIntoView 不起作用)之间的行为。

基本上,我有一个左栏菜单,但我不想放置一个位置:固定,所以它是一个带有浮动的相对菜单。所以主要内容的滚动是overflow-y on 。

现在,我有一个“欢迎”图像,它占据了访问者的所有屏幕高度。我创建的行为是当访问者向下滚动时,它直接到图像的末尾。当访问者位于图像下方并向上滚动一点时,它会直接转到图像的顶部。除此之外,文本中的滚动工作正常。

Firefox 一切正常,但 Chrome 没有按预期滚动到视图中。查看上面链接的网站中的 scroll.js 文件,console.log 显示 chrome 正在捕获滚轮事件并进入 scrollIntoView 但不滚动。

这是我应该报告的 chrome 错误吗?

谢谢

4

1 回答 1

0

您必须查看该WheelEvent.deltaMode值才能知道浏览器如何报告车轮事件:

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

于 2018-05-07T20:48:43.510 回答