jQuery可拖动删除而不改变其他元素的位置
我正在构建一个关于jQuery的页面布局配置系统。 因此,使用我的网站的每个人都可以通过在网页上移动元素来使其变得个性化。 但是,我有一个问题。
我页面上的每个元素都是一个可拖动的div,如果需要,可以选择从页面中删除。 当用户想要删除元素时,他点击内部div并调用以下函数:
$(function() { $('.close').click(function(){ $(this).parent().hide(); }); });
当用户想要在页面上添加元素时,他点击链接并调用followinf函数:
function addNewWidget(page_name, size){ var page = $('#'+page_name); var closeDiv = $(document.createElement("div")).attr("class", "close").html('X'); closeDiv.click(function(){ $(this).parent().hide(); }); var div = $(document.createElement("div")) div.attr("class", "drag"); div.appendTo(page); closeDiv.appendTo(div); div.draggable({ containment: "#page", scroll: false, grid: [200, 200] }); div.css("top:0; left:0"); div.addClass(size); div.addClass('widget'); }
一切正常,但当元素被删除时,页面上的其他元素正在向上移动。 这是因为代码中的元素定位。 代码中的这些div在div之前,已被删除,其绝对顶部由-heghtOfRemovedElement更改
有没有办法阻止其他元素向上移动?
当我在寻找一个完全不同但又有同样问题的解决方案时,我遇到了你的问题:从容器中取出一个元素时,其他元素会随意移动。
我不确定我最终解决的解决方案是否会对你有所帮助,但是如果它确实…它只是确保你的元素被设置为position:absolute。 我也在使用拖放function。 事实certificate,当您进入“可放置”区域时,不会隐式设置position:absolute属性,因此您必须手动执行此操作。
- 在鼠标拖动时突出显示单行的表格单元格
- 限制jquery可拖动以仅保留在圆的路径上
- 如何从.ajax GET的结果中添加可拖动的列表项?
- 禁用拖动“Owl carousel”中的特定元素(Item) – jquery
- 如果在此div之外和其他draggables内部,则可拖动恢复(使用无效和有效的恢复选项)
- 可信的div中的HTML5可拖动元素 – 在第一次掉落后停止工作 – 为什么?
- Fullcalendar:draggable对象拒绝fullcalendar为droppable,即使fullcalendar接受drop
- 切换(隐藏/显示)可放置面板时jquery奇怪的行为
- 限制jQuery可拖动项与重叠/与兄弟元素冲突