如何在不阻止默认情况下阻止滚动,因为我仍然希望处理touchmove事件:
<!DOCTYPE html> <html> <head> <script src="jquery.min.js"></script> </head> <body> <canvas id="myCanvas" width="1600px" height="1600px" style="border:1px dashed gray;background-color:white;"> </canvas> <script> function brushStart() { $('#myCanvas').css('background-color','blue'); } function brushEnd() { $('#myCanvas').css('background-color','red'); } function brushMove() { $('#myCanvas').css('background-color','yellow'); } $('#myCanvas').bind('mousedown',brushStart); $('#myCanvas').bind('mouseup',brushEnd); $('#myCanvas').bind('mousemove',brushMove); $('#myCanvas')[0].addEventListener('touchstart',brushStart,false); $('#myCanvas')[0].addEventListener('touchend',brushEnd,false); $('#myCanvas')[0].addEventListener('touchmove',brushMove,false); </script> </body> </html>
解决方法
当你说你想要它被处理时 – 它仍然可以.就像这样写:
$('#myCanvas')[0].addEventListener('touchmove',function(e) { e.preventDefault(); brushMove(); },false);
我不保证单独使用preventDefault会停止滚动,但是如果你想要它来阻止默认设置并且你自己也使用自己的方法,那就是你写它的方式.你也可以把这个调用放在brushMove本身.
我只想说你可能需要在touchStart中执行preventDefault而不是touchMove. touchMove实际上可能为时已晚,因为如果它滚动可能没有touchMove事件!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。