javascript - html5拖拽,获取拖拽item位置
问题描述
有什么方法可以根据与页面相关的X和Y来获取//dragover
事件中拖动的项目位置?我知道我可以通过调用or获得鼠标位置,但我想知道拖动创建的浮动元素的位置(可以通过函数设置的那个)dragenter
dragleave
event.clientX
event.clientY
event.dataTransfer.setDragImage()
例如,此代码将在拖动时打印鼠标位置,而不是浮动元素的实际偏移量:
function dragOver(event) {
console.log(event.clientX
});
解决方案
借助 jQuery 库,您可以实现它,您可以使用控制台打印值,只是为了向您展示我正在屏幕上打印位置。
$('#dragMe').draggable(
{
containment: $('body'),
drag: function(){
var position = $(this).position();
var xPos = position.left;
var yPos = position.top;
$('#positionX').text('positionX: ' + xPos);
$('#positionY').text('positionY: ' + yPos);
},
accept: '#dragMe',
over : function(){
$(this).animate({'border-width' : '5px',
'border-color' : '#0f0'
}, 500);
$('#dragThis').draggable('option','containment',$(this));
}
});
#dragMe {
width: 10em;
height: 6em;
padding: 0.5em;
border: 4px solid #ccc;
border-radius: 0 2em 2em 2em;
background-color: #fff;
background-color: rgba(255,255,255,0.5);
}
#dropMe {
width: 12em;
height: 12em;
padding: 0.5em;
margin: 0 auto;
}
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<div id="dragMe">
<p>DRAG ME</p>
<ul>
<li id="positionX"></li>
<li id="positionY"></li>
</ul>
</div>
<div id="dropMe"></div>
推荐阅读
- django - 如何将我的上下文变量传递给 Django 中的 javascript?
- ironpython - Iron python脚本从spotfire中的交叉表可视化中删除一些列
- javascript - 如何防止此 javascript 被评估?
- docker - docker nginx 将端口转发到容器错误
- php - ChartJs - 如何使用 Doughnutlabel 插件更新内部文本
- python - 下载后在python中重命名文件
- reactjs - 离子反应推动组件过渡问题
- python - 如何在具有不同字符编码的文件上运行 Python 文件
- c# - 没有setter的属性不能赋值,但是没有的属性可以
- swift - 使用未解析的标识符“timeR”-> 调用嵌套函数