javascript - ondragstart - 如何删除动画?
问题描述
每当用户使用 开始拖动元素时draggable="true"
,该元素都会具有您正在拖动的元素的半透明副本。这是来自 W3Schools 的示例:
停止启动动画
照片的右侧很重要。这是您开始拖动元素时获得的动画。
https://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_ondrag
我已经尝试使用event.preventDefault()
. 但是,这里的问题是,onDrag
当元素移动并且我需要来自 onDrag
.
似乎有一些帖子介绍了如何在您放下动画但未开始时停止动画。
刚刚离开 W3Schools 网站上的示例,我想要没有ondragstart
动画的拖动信息。
因此,如果我通过preventDefault()
在ondragstart
函数上添加 a 来修改代码:
function dragStart(event) {
console.log(event);
event.preventDefault(); //stops animation in right side of photo, but then won't let ondrag fire
event.dataTransfer.setData("Text", event.target.id);
}
function dragging(event) {
console.log(event);
document.getElementById("demo").innerHTML = "The p element is being dragged";
}
拖动时获得的动画消失。但是(如我的console.log)
行所示,在上ondrag
不会触发。这是我需要的信息。preventDefault
ondragstart
preventDefault
insideondrag
不会停止该动画。这甚至可能吗?
解决方案 如果有人想知道,我发现在这种情况下我需要做些什么。您可以将 javascript 中的图像设置为透明图像: 如何删除拖动(鬼)图像? 所以阻力仍然在技术上运行,但那个幽灵般的形象已经消失了。没有考虑正确的搜索词。
解决方案
在这种情况下,我会采用不同的方法: https ://codepen.io/deibl31/pen/oNeXmPE?editors=1111
// HTML
<div id="myDiv">
</div>
// CSS
#myDiv {
position: absolute;
height: 100px;
width: 100px;
background: black;
color: white;
}
// JS
let myDiv = document.getElementById('myDiv');
let mouseDown = false;
let divPos = {x: 0, y: 0};
myDiv.addEventListener('mousedown', (event) => {
mouseDown = true;
});
window.addEventListener('mousemove', (event) => {
if (mouseDown) {
divPos.x = event.clientX;
divPos.y = event.clientY;
}
});
window.addEventListener('mouseup', (event) => {
if (mouseDown) {
myDiv.style.top = divPos.y + 'px';
myDiv.style.left = divPos.x + 'px';
}
mouseDown = false;
});
推荐阅读
- python - 熊猫计算数据框中的单词,另一列中的乘数值
- reactjs - 具有 enableImplicitConversion 的类转换器/类验证器在 ReactJS 中无法按预期工作
- python - 在 Pandas 中分解和解包列
- asp.net - UserManager CheckPassword() 在 .net core 3.1 中重新设置密码,并且无法从 asp.net MVC 项目登录
- python - 范围内所有子函数中的重载函数
- dynamics-crm - 为什么 fetchXML Web API url 需要实体名称?
- stored-procedures - 雪花存储过程:处理多行字符串和单引号
- function - 用于检查电源自动化 html 表项中的空白值的函数/表达式
- react-native - Useeffect正在泄漏内存如何在firebase函数中避免它
- javascript - 使用对象 URL 获取部分内容 (206)