在苹果手机不能实时触发onscroll事件

项目需求:当页面滚动一定距离后,顶导航栏变为固定定位,定在页面顶部。可是我发现在苹果手机上,页面滑动时。不能实时触发onscroll事件,或者手指按住屏幕,它就不会变为固定定位,手指松开后,才会变为固定定位。安卓上就不会。
百度了一下,说是苹果手机在滑动中不能实时触发onscroll事件。那么京东的移动端的顶部导航栏随着页面滚动,背景色实时改变是怎么做到的?哪位大神有好的解决方法,这个需求解决不了了
阅读 6.3k
2 个回答

除了使用 scroll 事件之外, 再用上 touchmove 事件. 比如:

var topnode = document.querySelector('#top')
function change() {
    var y = document.scrollingElement.scrollTop
    // or
    // var y = window.pageYOffset
    var ratio = Math.min(0.8, y / 100)
    topnode.style.opacity = ratio
}
document.addEventListener('touchmove', change)
document.addEventListener('scroll', change)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏