相关疑难解决方法(0)

使用画布防止在移动设备上滚动页面

我在网上尝试了很多解决方案,但由于某种原因,当我在画布上移动触摸时,该页面仍然垂直移动:

<html>  
<head>
<style>

html, body {
  overflow-x: hidden;
}

body {
  background-color: lightgray;
  position: relative;
}

body.noScroll { 
  overflow: hidden;
}

</style>
</head>
<body>
        <canvas id="myCanvas" style="touch-action: none;" width="800" height="800"></canvas><br>        

        <script>

            document.body.addEventListener("touchmove", getTouchPos)

            var canvas = document.getElementById('myCanvas')            
            var context = canvas.getContext('2d')   

            context.fillStyle = "#000";
            context.fillRect(0, 0, canvas.width, canvas.height);

            function getTouchPos(evt) {
                evt.preventDefault();
            }

        </script>   
    </body> 
</html>
Run Code Online (Sandbox Code Playgroud)

在 iOS Safari 上测试。

javascript css mobile vertical-scrolling ios

5
推荐指数
1
解决办法
4825
查看次数

Html5(问题):在 iOS 11.3 上交互/拖动时画布滚动。

我有一个 HTML5 应用程序,它广泛使用其画布。iOS 11.3 更新后,我们开始遇到触摸问题。

实现时,我们确保明确告诉用户代理不应处理该事件。(即我们添加了evnt.preventDefault()

我们还限制了画布,并确保禁用浏览器对所有平移和缩放手势的处理。(touch-action: none虽然Safari不正式支持这个基本实现,但这确实适用于iOS 11.3之前的任何浏览器)

这并不特定于任何浏览器,但它会在 11.3 设备之后的任何 iOS 设备上表现出来。

可以使用此 JSFiddle 进行复制:https://jsfiddle.net/w542djdw/15/

任何建议将不胜感激。

touch ios html5-canvas

4
推荐指数
1
解决办法
2092
查看次数

标签 统计

ios ×2

css ×1

html5-canvas ×1

javascript ×1

mobile ×1

touch ×1

vertical-scrolling ×1