看起来
Draggable的构造函数中的’grid’选项相对于被拖动元素的原始坐标 – 如果你有三个可拖动的div,其顶部分别相对于100,200,254像素相对给他们的父母:
<div class="parent-div" style="position: relative;"> <div id="div1" class="draggable" style="top: 100px; position: absolute;"></div> <div id="div2" class="draggable" style="top: 200px; position: absolute;"></div> <div id="div3" class="draggable" style="top: 254px; position: absolute;"></div> </div>
当’grid’设置为[1,100]时,所有这些都被启用拖动:
draggables = $('.draggable'); $.each(draggables,function(index,elem) { $(elem).draggable({ containment: $('#parent-div'),opacity: 0.7,revert: 'invalid',revertDuration: 300,grid: [1,100],refreshPositions: true }); });
这里的问题是,一旦你拖动div3,比如说,向下,它的顶部会增加100,将它移动到354px,而不是仅仅增加46px(254 46 = 300),这将使它到达下一站网格 – 300px,如果我们将parent-div视为参考点和“网格持有者”.
我查看了可拖动的源代码,它似乎是一个内置的缺陷 – 它们只是相对于可拖动元素的原始位置进行所有计算.
我想避免猴子修补可拖动库的代码,我真正想要的是如何使Draggable计算相对于包含父级的网格位置.但是,如果猴子修补是不可避免的,我想我将不得不忍受它.
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。