setTimeout
、setInterval
、onscroll
、requestAnimationFrame
都试过了……
均会在惯性滚动的时候被暂停 _(:з」∠)_
真的没有好的解决办法么 0 0?
以及,scrolling end
是不是也不能监听到?
1
bumz 2014-12-25 04:02:33 +08:00 1
有一種辦法,那就是禁用掉 iOS 自帶的滾動,自己模仿一個。 https://bumfo.github.io/overflow.html 額外的好處是可以實現毛玻璃效果~ https://workspace.v2ex.com/file/c64143a0-8ba7-11e4-9d18-42010af0ecaa/2849178970-5463896a48365.jpeg
|
2
bumz 2014-12-25 04:14:42 +08:00 1
等等,剛纔試了一下,你確信 scrolling 的時候是無法執行 js,不是無法更新 scroll layer dom?
我這裏,requestAnimationFrame,js 一直好好地執行呢 (iOS 8 Safari),而且無論更新 scroll layer 還是 fixed layer 都無問題(iOS7 好像只能更新 fixed layer)。 |
3
shuding OP @bumz 谢谢!你的 demo 实在太棒了!
我的测试是 iOS 7 > <,scrolling 确实会暂停。 搜到一些资料,(iOS 7 里边)确实是 Apple 暂停掉了。 看来是 iOS 8 有改变: http://developer.telerik.com/featured/scroll-event-change-ios-8-big-deal/ |
4
yyfearth 2014-12-25 04:40:58 +08:00
说是js会执行 但是不paint
|
5
hkongm 2014-12-25 08:42:29 +08:00
IOS8的SAFARI才有了真正的scroll事件。
|
8
iyangyuan 2014-12-25 09:51:01 +08:00
好像滚动的时候,css animation也会停掉。。。
|
10
bumz 2015-05-11 18:59:08 +08:00 via iPad
@whatisnew iOS 8 一切正常,iOS 7 除了自製滾動外,不可能有比較完美的解決方案。
不過 fixed 和 sticky 的元素在滾動時可以被 js 更新,雖然 css 動畫被暫停,但是也可以用 js 操縱動畫。。。 demo: https://bumfo.github.io/anim.html iOS 7 下,保持手指移動,動畫繼續 然而如果手指沒有移動,目前也沒有什麼辦法能讓動畫繼續了。 |