HTML移动端怎么禁止touchstart事件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HTML移动端怎么禁止touchstart事件相关的知识,希望对你有一定的参考价值。
我在移动端界面做了一个弹出框,但是后面的内容还能滑动,怎么禁止touchstart事件触发呢
这个不是touchstart事件的问题,你可以在弹框弹出的同时,设置body静止滚动~(给body添加css样式:overflow:hidden;) 参考技术A 1. 重写touchstart touchmove等事件,让这些事件什么也不做例如: document.ontouchstart = funciton() return false;;
2. 取消事件冒泡的行为
3 把你的触屏事件删除掉
jquery——移动端touch事件
首先为了防止事件触发默认行为,我们需要去禁止,安全的禁止方法:
// 判断默认行为是否可以被禁用 if (e.cancelable) { // 判断默认行为是否已经被禁用 if (!e.defaultPrevented) { e.preventDefault(); } }
三个事件:
$("body").on("touchstart", function(e) { e.preventDefault(); }); $("body").on("touchend", function(e) { e.preventDefault(); }); $("body").on("touchmove", function(e) { e.preventDefault(); });
移动开始和结束的坐标获取:
startX = e.originalEvent.changedTouches[0].pageX; startY = e.originalEvent.changedTouches[0].pageY; moveEndX = e.originalEvent.changedTouches[0].pageX; moveEndY = e.originalEvent.changedTouches[0].pageY;
样例:
$("body").on("touchstart", function(e) { e.preventDefault(); startX = e.originalEvent.changedTouches[0].pageX, startY = e.originalEvent.changedTouches[0].pageY; }); $("body").on("touchmove", function(e) { e.preventDefault(); moveEndX = e.originalEvent.changedTouches[0].pageX, moveEndY = e.originalEvent.changedTouches[0].pageY, X = moveEndX - startX, Y = moveEndY - startY; if ( X > 0 ) { alert(‘向左滑动‘); } });
对应pc端鼠标操作:
touchstart ——> mousesdown touchend ——> mouseup touchmove ——> mousemove
以上是关于HTML移动端怎么禁止touchstart事件的主要内容,如果未能解决你的问题,请参考以下文章