簡體   English   中英

在畫布中繪制div元素

[英]drawing a div element inside a canvas

我有這個jsfiddle: http//jsfiddle.net/VFZ4m/11/

當用戶刪除div時,應該創建相同的圖像並在畫布內繪制,我該怎么做?

我試過這個代碼,但它沒有運作

$('#x').draggable();
$('#c').droppable({
drop: function(event, ui) {
    var img = ui.draggable;
    var ctxt =$("#c")[0].getContext("2d");
    ctxt.drawImage(img[0], 0, 0);
    return false;
}
});

您無法訪問存儲為CSS背景圖像的圖像 - 沒有圖像元素

如果圖像是<div>的真實<img>標記,它確實有效

http://jsfiddle.net/alnitak/DuCVG/1/

(更難)替代方法是使用window.getComputedStyle()從元素中讀取background-image CSS屬性,解析它,然后創建一個具有相同源的全新Image對象。

使用jQuery將div背景圖像繪制到html畫布上

在此輸入圖像描述

你可以得到一個丟棄div的背景圖像URL,如下所示:

var img = ui.draggable;
var bkURL=img.css("background-image");
bkURL=bkURL.substr(5).substr(0,bkURL.length-7);

然后,您只需使用該URL作為其.src來新建一個圖像元素:

var img=new Image();
img.onload=function(){
    ctxt.drawImage(img, 0, 0);
}
img.src=bkURL

這是代碼和小提琴: http//jsfiddle.net/m1erickson/WzHvJ/

<!doctype html>
<html lang="en">
<head>

<style>
    body {
    padding: 20px;    
    }
    #x {
    border: 1px solid green;
        cursor: move;
        background:url('http://www.kidzui.com/images/layout/spaceship/star-orange-full.png') no-repeat;
        height:40px; 
        width:40px;
    }
    #x, #c {
    display: block;
    clear: both;
    }
    #c {
    margin-top: 30px;
    border: 1px solid red
    }
</style>

  <link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" />
  <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
  <script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>

  <script>

  $(function() {

      $('#x').draggable();
      $('#c').droppable({
          drop: function(event, ui) {
              var img = ui.draggable;
              var bkURL=img.css("background-image");
              bkURL=bkURL.substr(5).substr(0,bkURL.length-7);
              var ctxt =$("#c")[0].getContext("2d");
              var img=new Image();
              img.onload=function(){
                  ctxt.drawImage(img, 0, 0);
              }
              img.src=bkURL
              return false;
          }
      });

  });   // end $(function(){});

  </script>
</head>
<body>
    <div id="x">&nbsp;</div>
    <canvas id="c" width="200" height="200">
</body>
</html>

無法使用<canvas>里面的元素<div>元素</div><div id="text_translate"><p>我無法在 &lt;div&gt; 元素中添加 &lt;canvas&gt; animation 。 使用當前代碼,animation 占據整頁,我想將 &lt;canvas&gt; 封裝在 &lt;div&gt; 中,以便 animation 進入單個部分。 類似於 &lt;div&gt;&lt;canvas&gt; &lt;/canvas&gt;&lt;/div&gt;</p><pre> HTML: &lt;canvas&gt;&lt;/canvas&gt; &lt;h2&gt;hi&lt;/h2&gt;</pre><pre> CSS: * { padding: 0; margin: 0; box-sizing: border-box; } body { width: 100%; height: 100vh; font-family: 'Poppins', sans-serif; background-color: #121212; display: flex; align-items: center; justify-content: center; } canvas { width: 100%; height: 100%; position: fixed; top: 0; left: 0; z-index: 0; } h2 { font-size: 80px; color: white; position: relative; }</pre></div></canvas>

[英]Unable to use <canvas> element inside <div> element

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM