【问题标题】:Save div to image after drag and drop拖放后将div保存到图像
【发布时间】:2014-09-23 01:17:19
【问题描述】:
【问题讨论】:
标签:
c#
javascript
asp.net
【解决方案1】:
很抱歉打扰了大家,但现在我自己得到了答案!
问题是图像元素仍在 DOM 中的拖动区域中,因此它们没有出现在图像中。我就是这样解决的:
<div id="dragzone" ondrop="drop(event)" ondragover="drag_over(event)" style="width:100%; height: 572px;">
<img id="dragme" src="Images\ballgreen.png" draggable="true" style="position:absolute; left: 36px; top: 210px;" ondragstart="drag_start(event)">
<img id="img2" src="Images\ballred.png" draggable="true" style="position:absolute; left: 36px; top: 220px;" ondragstart="drag_start(event)" >
</div>
<div id="dropzone" ondrop="drop(event)" ondragover="drag_over(event)" style="width:500px;height:500px;padding:10px;border:1px solid #aaaaaa; background-color: #ccccff;">
<script>
function drag_start(event) {
var style = window.getComputedStyle(event.target, null);
var data = (parseInt(style.getPropertyValue("left"), 10) - event.clientX)
+ ',' + (parseInt(style.getPropertyValue("top"), 10) - event.clientY)
+ ',' + event.target.id;
event.dataTransfer.setData("text/plain", data);
}
function drag_over(event) {
event.preventDefault();
return false;
}
function drop(event) {
var offset = event.dataTransfer.getData("text/plain").split(',');
var id = offset[2];
var dragzone = document.getElementById('dragzone');
var dropzone = document.getElementById('dropzone');
var dm = document.getElementById(id);
if (dm != null) {
dragzone.removeChild(dm);
dropzone.appendChild(dm);
dm.style.left = (event.clientX + parseInt(offset[0], 10)) + 'px';
dm.style.top = (event.clientY + parseInt(offset[1], 10)) + 'px';
}
event.preventDefault();
return false;
}
function screenshots() {
var dropzone = document.getElementById('dropzone');
html2canvas(dropzone, {
onrendered: function (canvas) {
Canvas2Image.saveAsPNG(canvas);
var test = 'test';
}
});
}