这个问题更像是一个建议研究,我确实希望它对其他人有帮助并且它不会关闭,因为我不太确定在哪里寻求关于这个问题的建议。
在过去的 6 个月里,我一直在为移动设备开发,我有机会处理各种设备上的各种情况和错误。
在网站的多个区域滚动时,最令人不安的是滚动问题。在我从事的三个项目中,我一直在构建一个导航,其行为方式与原生 iOS Facebook 应用程序或移动设备上的 Google 网站等的行为方式相同。对于每个项目,我都提出了不同的解决方案。
但是几天前我刚刚发布了一个新的 JavaScript 库,drawerjs,它可以用来生成这样的导航(所谓的画布外概念)。其他库和这个库之间的区别在于它与库无关,它作用于触摸行为(与 Facebook 应用程序的行为方式相同),而不仅仅是在点击时打开/关闭。
我要实现的一件事是在菜单和导航内部滚动而不相互影响的解决方案(大多数情况下,当您以这种方式滚动时,内容往往会与您的菜单一起滚动,或者在您拥有到达菜单滚动的末尾)。
我有两个解决方案:
一种方法是使用与拖动内容和显示导航相同的原理,在
touchmove
我防止文档/内容上的默认滚动时,我开始以与滚动相同的量来翻译内容。并且具有与触摸滑块相同的抵抗行为(当您超出边界并放手时,内容将转换回来,因此它不再超出边界,或者以相同的行为滑动)。第二种方法是使用
overflow-scrolling
iOS 拥有的本机,并提供与第一种方法中描述的相同的感觉。这样做的缺点是只有 iOS 设备具有良好的抗性功能,但据说第一种方法不会那么麻烦。
所以我不太确定我应该采取哪种方法,或者是否有更好的解决方案。我还试图记住,一些用户希望隐藏 url 栏,因此必须保持在 body / html 上的滚动(在y
轴上)。