【发布时间】:2019-12-15 16:07:22
【问题描述】:
在我的网络应用程序中,有一个可拖动的元素。 当元素在拖动时达到一定限制时,我需要设置该元素的左侧位置。 使用 jQuery 可拖动小部件,我可以访问元素的位置:
function drag(e, ui) {
console.log(ui.position.left);
}
假设我的左侧属性设置为 1100 像素,我需要将其设置为 500 像素,并且不停止拖动。
我有三个函数:dragStart、drag 和 gradEnd。
目前,我只得到了一个结果:在拖动功能上设置ui.position.left = 500; 时(使用条件),左侧位置设置为500,但当然,元素随后被卡在500px。原因是每次触发拖动功能时,左侧位置设置为500。
如果代码只运行一次ui.position.left = 500; 行,position left 属性设置为 500,但直接重置为 1100。
如何一劳永逸地设置left属性?
$("#divId").draggable({
drag: drag,
})
function drag(e, ui) {
if (ui.position.top > 50) {
ui.position.left = 100;
}
}
#divId {
height: 70px;
background-color: white;
border: 4px solid #000000;
text-align: center;
color: black;
cursor: grab;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<div id="divId">
Bubble
</div>
【问题讨论】:
-
这是一个 jsfiddle jsfiddle.net/sam101CS/nx4ka70u/16
-
我希望在拖动过程中左侧位置增加。
-
但它确实增加了——还是我错过了什么?
-
它确实增加了,但是当回到屏幕顶部时,它也减少了,这不是我想要实现的行为。我想一劳永逸地增加左边的位置。
-
是的,但只有在此之后一个条件设置为真,并且这不会停止拖动。
标签: javascript jquery css draggable