使用Javascript将图像拖动到div上时如何缩放重影图像?

Tho*_*goc 7 html javascript drag-and-drop jquery-ui-draggable


当用户将该图像拖动到 div 上时,请帮助我制作效果缩放 x2 重影图像,如下视频所示:

在此输入图像描述


这是我的代码(我尝试使用 e.dataTransfer.setDragImage 来更新事件“dragenter”中的图像,但它不起作用):

var containerElement = document.getElementById('containter');
containerElement.addEventListener('dragenter', function(e) {
	// Need scale image here
	var ghostImageElement = document.getElementById('drag_ghost_image');
	$(ghostImageElement).width($(dragImage).width() * 2);
	$(ghostImageElement).height($(dragImage).height() * 2);

	e.dataTransfer.setDragImage(ghostImageElement, 0, 0);

}, true);

containerElement.addEventListener('dragleave', function(e) {
	// Need scale image here
	var ghostImageElement = document.getElementById('drag_ghost_image');
	$(ghostImageElement).width($(dragImage).width());
	$(ghostImageElement).height($(dragImage).height());

	e.dataTransfer.setDragImage(ghostImageElement, 0, 0);

}, true);

var dragImageElement = document.getElementById('dragImage');
dragImageElement.addEventListener('dragstart', function(e) {

	// Make trace image
	var crt = this.cloneNode(true);
	crt.setAttribute('id', 'drag_ghost_image');
	crt.style.position = "absolute";
	crt.style.top = "0";
	crt.style.right = "0";
	$(crt).width($(this).width());
	$(crt).height($(this).height());

	document.body.appendChild(crt);
	e.dataTransfer.setDragImage(crt, 0, 0);


}, true);

dragImageElement.addEventListener('dragend', function(e) {
	var element = document.getElementById('drag_ghost_image');
	element.parentNode.removeChild(element);
}, true);
Run Code Online (Sandbox Code Playgroud)
<script src="https://code.jquery.com/jquery-3.3.1.js"></script>

<div>
		<img id="dragImage"
			 src="https://futushigame.firebaseapp.com/demo-thumb.jpg" 
			 data-large-img="https://futushigame.firebaseapp.com/demo-big.jpg">
	</div>
	<div id="containter" style="width: 100%; height: 500px; background-color: gray">
		Drag over me
	</div>
Run Code Online (Sandbox Code Playgroud)


谢谢你!