扫码关注官方订阅号
一个手机上的页面,上面有一块区域,高度固定,有上下滚动条。 如何实现用户在滑动页面的时候,当在这块区域上的时候 只是这块区域的内容滚动,而不是整个页面跟着滚动?
学习是最好的投资!
给元素加上 position:fixed 的style
position:fixed
这个写起来会有点复杂:思路是当手机上触发touchstart事件的时候,判断触发事件的位置和那块区域的位置,如果在区域内的话,就阻止事件冒泡和事件默认行为,然后记录下位置,当继续触发touchmove事件的时候,也是阻止事件冒泡和事件默认行为,并开始计算位置,然后用这个和之前记录的位置进行比较计算,以计算值来滚动那块区域的内容(需要自己写js代码来滚动它),这也就是常见的模拟滚动了。会有点复杂,祝好。
用touchstart和touchmove控制上部分scrolltop,加e.preventDefault()禁止浏览器默认的滚动(可以判断是否滚到底部,如果是的话则不禁止,这样上面划完了就自然转成滚动全页)。这样就做到上部分触控只滚动它内部,其他区域滚动则是整页滚动。
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
给元素加上
position:fixed的style这个写起来会有点复杂:思路是当手机上触发touchstart事件的时候,判断触发事件的位置和那块区域的位置,如果在区域内的话,就阻止事件冒泡和事件默认行为,然后记录下位置,当继续触发touchmove事件的时候,也是阻止事件冒泡和事件默认行为,并开始计算位置,然后用这个和之前记录的位置进行比较计算,以计算值来滚动那块区域的内容(需要自己写js代码来滚动它),这也就是常见的模拟滚动了。会有点复杂,祝好。
用touchstart和touchmove控制上部分scrolltop,加e.preventDefault()禁止浏览器默认的滚动(可以判断是否滚到底部,如果是的话则不禁止,这样上面划完了就自然转成滚动全页)。这样就做到上部分触控只滚动它内部,其他区域滚动则是整页滚动。
position:fixed