在微信移动端里,页面在顶部 /底部时如果继续往下滑动 /往上滑动就会出现灰色底部,相信大家都遇到过吧,我想禁止这种情况发生,使得页面的表现跟普通移动浏览器的一样。
开始我以为是个很简单的需求,判断好最上层元素(一般都是 body )滚动条,是否在顶部 /底部时还有往下拖动 /往上拖动的情况后,把滑动的默认事件屏蔽就可以了。
当我写好判断条件,能完美判断是否应该触发屏蔽行为后,却发现无法触发屏蔽行为,下面语句全部一起上:
event.preventDefault();
event.stopPropagation();
document.removeEventListener("touchmove", 滑动事件, false);
结果还是不行,我想既然我能正确判断出是否应该触发屏蔽行为的时机,那么剩下的屏蔽行为应该不会很难吧,于是我决定百*必*谷*一下,却发现很多答案,要么直接禁掉 document 的 touchmove 完事,要么在屏蔽行为里直接一句 event.preventDefault(); 就没了。但是评论下面不少人表示不完美,难道微信出来这么多年了,一直没有最优解?
可能是我学技不精,求教。不希望借用插件。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.