14

OS X Lion 及更高版本允许用户打开/关闭 iOS 风格的浮动滚动条 - 通过系统偏好设置手动或插入鼠标。

基于 WebKit 的浏览器(也许还有 Opera?)会立即切换它们的滚动条样式 -发生这种情况时是否会触发事件?(WebKit-only 就可以了)


一些注意事项:

  • OS XNSPreferredScrollerStyleDidChangeNotification在用户切换滚动条样式时触发

  • WebKit 似乎没有订阅此事件(grep 时没有命中)。

  • 我怀疑 WebKit 正在通过NSViewBoundsDidChangeNotification事件处理这个问题(我假设它会为滚动视图的内容视图触发)。

  • WebKit在 内-[WebHTMLView _frameOrBoundsChanged]处理此事件,这似乎是一个潜在的重新布局点。

  • WebPDFView在和检查员的通知中也有提到这个通知WebNodeHighlight——两者似乎都与本案无关。

  • -[WebDynamicScrollBarsView adjustForScrollOriginChange]似乎表明事件可能不会被触发(如果是这样,很高兴看到一些确认)


轮询更改对我来说不是一个可接受的答案(用户更改值后性能和布局跳跃)。

4

1 回答 1

0

从我目前所读的所有内容来看,在这种样式转换期间没有触发 DOM 事件。

最有说服力的例子是创建一个overflow: autodiv,然后通过monitorEvents. 更改滚动条样式时不会记录任何内容。

我在这个问题上有一个开放的 webkit 错误(尽管它可能很小,我们不会看到任何动作)。

于 2012-05-07T17:55:30.243 回答