HTML キャンバスをファイルに保存しようとしていますが、これは正常に実行できますが、キャンバスにドラッグしたオブジェクトは保存されません。
したがって、Draggable JQuery を使用することで、オブジェクトを画面上で自由に移動し、キャンバスの上に配置することができます。を使用してキャンバスを保存するCanvas.ToDataURL()
と、ドラッグしたオブジェクトが保存されません (また、jsFiddle でキャンバスに奇妙なことを行います。キャンバスの色が変わったように見えますか?)。
「動作する」例を見るには、私の jsFiddle http://jsfiddle.net/JVSFS/74/にアクセスしてください。
緑色のボックスを青色のボックスの上にドラッグし、保存ボタンをクリックしてください。結果は下に表示されます (オレンジ色のボックスのみ)。
HTML
<canvas id="MyCanvas" class="canvas"></canvas>
<div class="popup_click">
<div id="popup_title">Drag</div>
</div>
<asp:HiddenField ID="hideMe" runat="server" />
<asp:Button runat="server" OnClick="ClickMe" Text="Click" OnClientClick="SaveMe()" />
<button onclick="SaveMe()">Try it</button>
<p>Results: </p>
<img id="myImage" />
JavaScript
$(document).ready(function () {
$('.popup_click').show(0).draggable();
});
function SaveMe() {
var canvas = document.getElementById("MyCanvas");
var context = canvas.getContext("2d");
context.fillStyle = "orange";
context.fillRect(0, 0, 100, 100);
var image = canvas.toDataURL("image/png");
document.getElementById("myImage").src = image;
document.getElementById("hideMe").value = image;
}
CSS
.popup_click {
background: #80FF80;
width: 50px; }
.canvas {
width: 100px;
height: 100px;
background-color: #0FC;
}
ドラッグしたオブジェクトを保存するにはどうすればよいですか? オブジェクトがそのコンテキストの一部であることをキャンバスに伝える必要があると思いますが、その方法がわからず、自分の検索では何も見つかりませんでした。