• 微信公众号:美女很有趣。 工作之余,放松一下,关注即送10G+美女照片!

怎么处理canvas 绘图发生位置偏离

互联网 diligentman 6天前 4次浏览

今天主要聊聊怎么处理canvas 绘图发生位置偏离,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

使用 canvas 绘图时,指定的 div 大小一定不要超过该 div 所能获得的最大范围,否则绘制的点会跟实际位置发生偏离。

 

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled 1</title>
<style type="text/css">
.style1 {
  font-size: x-small;
}
</style>

</head>
 
<body >
    <div style="margin:2%">
            <div id="test" style="width:800px;height:800px;background-color:#cbdad0d9">
                 <canvas id="container" onmousemove="mousemove(event)" 
                 onmousedown="mousedown( www.6588wang.com )" onmouseup="mouseup()"></canvas>
            </div>
    </div>
   
    <script type="text/javascript">
        var paint = false;
        var start = false;
        var canvas = document.getElementById("container");
        canvas.width = 800;
        canvas.height = 800;
        var offsetY = canvas.offsetTop;
        var offsetX = canvas.offsetLeft;
        var y;
        var x;
        var context = canvas.getContext("2d");
   
        function mousemove(e) {
            if (paint == true){
                if (start == false){
                    context.moveTo(0, 0);
                    start = true;
                } else {
                    context.moveTo(x, y);
                }

                x = e.pageX - offsetX;
                y = e.pageY - offsetY;
                context.lineTo(x, y);
                context.stroke();
            }
        }
   
        function mousedown(event) {
            paint = true;
            console.log("down")
        }
   
        function mouseup(event) {
            paint = false;
            console.log("up")
        }
   
    </script>
</body>
</html>

上例中可以正确的绘制线图。

如果更改为:

<div style="margin:20%">
        <div id="test" style="width:800px;height:800px;background-color:#cbdad0d9">
                <canvas id="container" onmousemove="mousemove(event)" onmousedown="mousedown()" onmouseup="mouseup()"></canvas>

        </div>
</div>

由于canvas所需width 800px无法满足,因此绘制线图时,与实际鼠标位置发生偏离。

转自脚本之家

 

 

展开阅读全文

举报

打赏

0


0 收藏

微信
QQ
微博

分享

作者的其它热门文章

HTML5在手机端实现视频全屏展示方法
Centos7 yum安装mongodb详细步骤
MongoDB 用户管理
html中table固定头部表格tbody可左右滑动


程序员灯塔
转载请注明原文链接:怎么处理canvas 绘图发生位置偏离
喜欢 (0)