【问题标题】:Draggable into Sortable as Grid可拖动到可排序的网格中
【发布时间】:2015-12-14 17:19:53
【问题描述】:

我正在尝试使用 jquery 创建可拖动列表到可排序列表中。

一切正常,除非使用 CSS 将此列表转换为网格。一旦所有内容都显示为网格,可拖动到可排序的对象就会停止工作。

我的 HTML 是:

<ul id="sortable2">
  <li class="ui-state-highlight">A</li>
  <li class="ui-state-highlight">B</li>
  <li class="ui-state-highlight">C</li>
  <li class="ui-state-highlight">D</li>
</ul>

<ul id="sortable">
  <li class="ui-state-default">1</li>
  <li class="ui-state-default">2</li>
  <li class="ui-state-default">3</li>
</ul>

我的页面SCRIPT是:

$(function() {
   $("#sortable").sortable();
   $("#sortable2 li").draggable({
      connectToSortable: "#sortable",
      helper: "clone"
   });
});

我添加的 CSS 使两个 UL 显示为网格是:

#sortable {
  list-style-type: none;
  margin: 0;
  padding: 0;
  width: 450px;
}
#sortable li {
  margin: 3px 3px 3px 0;
  padding: 1px;
  float: left;
  width: 100px;
  height: 90px;
  font-size: 4em;
  text-align: center;
}
#sortable2 {
  list-style-type: none;
  margin: 0;
  padding: 0;
  width: 450px;
}
#sortable2 li {
  margin: 3px 3px 3px 0;
  padding: 1px;
  float: left;
  width: 100px;
  height: 90px;
  font-size: 4em;
  text-align: center;
}

有什么想法吗?

我正在使用 jquery-ui.css、jquery-ui.js 和 jquery.min.js。

谢谢

【问题讨论】:

    标签: javascript jquery html css jquery-ui


    【解决方案1】:

    发生这种情况的原因是子 li 元素是浮动的。

    当一个元素浮动时,它本质上是removed from the normal document flow,在这种情况下会导致父元素以0 的高度折叠到自身上:

    因此,您不能将元素放入#sortable 元素中,因为它没有高度。

    最常见的解决方法是使用a clearfix 来防止父元素折叠。

    overflow: auto添加到容器元素(example)

    ul {
      overflow: auto;
    }
    

    或使用伪元素(example)

    ul:after {
      content: '';
      clear: both;
      display: table;
    }
    

    或者,您也可以从li 元素中删除float: left,并将它们的display 设置为inline-block。此外,应添加vertical-align: top 以解决拖动元素(example) 时的小对齐问题:

    ul li {
      display: inline-block;
      vertical-align: top;
    }
    

    【讨论】:

    • 谢谢伙计。它奏效了。我最终使用了这个:#sortable:after { clear:both;内容:'。';显示:块;高度:0;行高:0;字体大小:0;可见性:隐藏;填充:0;边距:0; }
    猜你喜欢
    • 2016-07-20
    • 2011-12-02
    • 1970-01-01
    • 1970-01-01
    • 2014-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多