javascript - 对拖动的图像及其元素使用相同的位置
问题描述
拖动图像时,我希望拖动的图像和元素本身具有相同的位置以使其看起来流畅。
var troll = document.getElementById('troll');
var x, y = 0;
troll.addEventListener('drag', (e) => {
e.preventDefault();
var left = e.clientX - 40 + 'px';
var top = e.clientY - 40 + 'px';
if (x < e.clientX) {
e.target.style.left = left;
}
else {
e.target.style.left = left--;
}
if (y < e.clientY) {
e.target.style.top = top;
}
else {
e.target.style.top = top--;
}
x = e.clientX - e.target.width;
y = e.clientY - e.target.height;
}, false);
img {
width: 100px;
cursor: pointer;
position: absolute;
}
<div id="troll">
<img src="http://images.mmorpg.com/features/7909/images/Troll.png" alt="Troll">
</div>
如您所见,我已经尝试过
var left = e.clientX - 40 + 'px';
var top = e.clientY - 40 + 'px';
这总比没有好,但它看起来并不完美,因为40
它只是一个静态数字。我也试过了e.clientX - e.target.width + 'px'
,e.clientY - e.target.height + 'px'
但它不起作用。
如何使用动态号码?或者如果有更好的解决方案,请告诉我。
解决方案
推荐阅读
- java - 心跳超时后无法连接rabbitmq
- android - 使用 ConstraintLayout 对按钮进行分组
- mysql - 数据库更新后如何清除缓存?
- azure-active-directory - asp.net核心的多租户登录问题
- reporting-services - 用作切换项时更改文本框中的文本
- visual-studio - Visual Studio 2017“浏览方式”Web 浏览器编辑对话框的参数中的环境变量扩展语法?
- powershell - Powershell管理模式下如何输出批处理文件的控制台?
- swift - Alamofire 公钥固定不验证其他 url
- python - python cookie的奇怪行为,无法设置cookie
- mysql - 如何在 MySql 中获取有时间限制的数据