Hom*_*man 6 html5 scroll canvas
如何在不阻止默认情况下阻止滚动,因为我仍然希望处理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>
Run Code Online (Sandbox Code Playgroud)
当你说你想要它被处理时 - 它仍然可以.就像这样写:
$('#myCanvas')[0].addEventListener('touchmove', function(e) {
e.preventDefault();
brushMove();
},false);
Run Code Online (Sandbox Code Playgroud)
我不保证单独使用preventDefault会停止滚动,但是如果你想要它来阻止默认设置并且你自己也使用自己的方法,那就是你写它的方式.你也可以把这个调用放在brushMove本身.
我只想说,你可能需要做preventDefault的touchStart,而不是touchMove.touchMove实际上可能为时已晚,因为如果它滚动可能没有touchMove事件发生!