我正在使用
jquery UI和jQuery draggable,我的所有draggable都使用jquery clone helper并将draggable追加到droppable.
这是我的代码
$('#squeezePage #droppable').droppable({ tolerance: 'fit',accept: '#squeezeWidgets .squeezeWidget',drop: function(event,ui) { var dropElem = ui.draggable.html(); var clone = $(dropElem).clone(); clone.css('position','absolute'); clone.css('top',ui.absolutePosition.top); clone.css('left',ui.absolutePosition.left); $(this).append(clone); $(this).find('.top').remove(); $(this).find('.widgetContent').slideDown('fast'); $(this).find('.widgetContent').draggable({ containment: '#squeezePage #droppable',cursor: 'crosshair',grid: [20,20],scroll: true,snap: true,snapMode: 'outer',refreshPositions: true }); $(this).find('.widgetContent').resizable({ maxWidth: 560,minHeight: 60,minWidth: 180,grid: 20,}); } });
我用.css(‘top’,ui.absolutePosition.top)设置克隆的位置;和css(‘left’,ui.absolutePosition.left);但这个位置是相对于BODY的.
该位置与droppable无关,这使得可拖动的下降到随机位置.总体而言,可投放和可拖动的集成并不紧张.我想让它更顺畅.
解决方法
我正在获取正文的偏移量并从小部件克隆的偏移量中减去它.
clone.css('top',ui.position.top - droppableOffset.top); clone.css('left',ui.position.left - droppableOffset.left);
有用!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。