乱码乱a∨中文字幕,在线免费激情视频,亚洲欧美久久夜夜潮,国产在线网址

  1. <sub id="hjl7n"></sub>

    1. <sub id="hjl7n"></sub>

      <legend id="hjl7n"></legend>

      當(dāng)前位置:首頁 >  站長 >  編程技術(shù) >  正文

      canvas 繪圖時位置偏離的問題解決

       2020-10-15 11:32  來源: 腳本之家   我來投稿 撤稿糾錯

        阿里云優(yōu)惠券 先領(lǐng)券再下單

      這篇文章主要介紹了canvas 繪圖時位置偏離的問題解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

      使用 canvas 繪圖時,指定的 div 大小一定不要超過該 div 所能獲得的最大范圍,否則繪制的點會跟實際位置發(fā)生偏離。

      例如

      <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()" 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無法滿足,因此繪制線圖時,與實際鼠標(biāo)位置發(fā)生偏離。

      到此這篇關(guān)于canvas 繪圖時位置偏離的問題解決的文章就介紹到這了,更多相關(guān)canvas 繪圖位置偏離內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持腳本之家!

      來源:腳本之家

      鏈接:https://www.jb51.net/html5/745325.html

      申請創(chuàng)業(yè)報道,分享創(chuàng)業(yè)好點子。點擊此處,共同探討創(chuàng)業(yè)新機(jī)遇!

      相關(guān)文章

      熱門排行

      信息推薦