【问题标题】:jQuery Sortable with static content带有静态内容的 jQuery 可排序
【发布时间】:2017-04-08 12:14:08
【问题描述】:

我使用 Bootstrap 和 jQuery 编写网站。现在,我在网页底部有一个水平的 div 列表。它的作用类似于 Microsoft Powerpoint 中的滑动条。数字是不变的元素。如果我从服务器获得 6 条记录,它将在列表中生成 6 张幻灯片。用户可以拖动“DIV”框并移动到另一个位置。就像 Sortable 插件的正常流程一样。

预期结果: 我尝试了两种方法来编码这个“滑动条”。但是,我无法构建预期的结果。

概念 1: 拆分两行来执行。但会有两个可滚动的。

<div class="row">
  <div class="col-md-12">
    <div class="row">
      <div class="col-md-12">
        <div>1</div>
        <div>2</div>
        <div>3</div>
        <div>4</div>
        <div>5</div>
        <div>6</div>
      </div>
    </div>
    <div class="row">
      <div class="col-md-12 sortable-list">
        <div class="box"></div>
        <div class="box"></div>
        <div class="box"></div>
        <div class="box"></div>
        <div class="box"></div>
        <div class="box"></div>
      </div>
    </div>
  </div>
</div>

概念 2: 使用“项目”。但是,当可以拖动框时会存在一些奇怪的问题。 slideNumber div 将移动到错误的位置,框将消失

$("sortable-list").sortable({
  items:'.box'
});
.slideNumber{
position: absolute;
top:0px;
left:15px;
}

.box{
position: absolute;
top:30px;
left:0;
}
/**roughly css**/
<script 
src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js">
</script>
<div class="row">
      <div class="col-md-12">
        <div class="row">
          <div class="col-md-12 sortable-list">
            <div>
              <div class="slideNumber">1</div>
              <div class="box"></div>
            </div>
            <div>
              <div class="slideNumber">2</div>
              <div class="box"></div>
            </div>
            <div>
              <div class="slideNumber">3</div>
              <div class="box"></div>
            </div>
            <div>
              <div class="slideNumber">4</div>
              <div class="box"></div>
            </div>
            <div>
              <div class="slideNumber">5</div>
              <div class="box"></div>
            </div>
            <div>
              <div class="slideNumber">6</div>
              <div class="box"></div>
            </div>
          </div>
        </div>
    </div>
</div>

任何人都可以给我一个提示来构建这个滑动条吗?

【问题讨论】:

  • 请添加您的 CSS
  • 因为我无法编码预期的结果,我只是在上面添加了大致的 css。

标签: javascript jquery html jquery-ui-sortable


【解决方案1】:

这应该可行:

$( function() {
  $(".sortable-list")
    .sortable()
    .disableSelection();
} );
.container > div {
  padding:0 30px 0px 30px;
  display:inline-block;
}
.sortable-list > div {
  margin:1px;
  display:inline-block;
  padding:30px;
  background:#777;
  border:1px solid black;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/themes/smoothness/jquery-ui.css"><script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>
<div class="row">
  <div class="col-md-12">
    <div class="row">
      <div class="col-md-12 container">
        <div>1</div>
        <div>2</div>
        <div>3</div>
        <div>4</div>
        <div>5</div>
        <div>6</div>
      </div>
    </div>
    <div class="row">
      <div class="col-md-12 sortable-list">
        <div>&nbsp;</div>
        <div>&nbsp;</div>
        <div>&nbsp;</div>
        <div>&nbsp;</div>
        <div>&nbsp;</div>
        <div>&nbsp;</div>
      </div>
    </div>
  </div>
</div>

【讨论】:

    【解决方案2】:

    .row
    {
    width:100%;
    
    }
     .col-md-12,.slideNumber
    {
    width:100%;
    display:flex;
    margin-right:50px;
    }
    
    .box
    {
    width:50px;
    height:50px;
    background:gray;
    text-align:center;
    line-height: 50px;
    vertical-align: middle;
    }
    <script 
    src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js">
    </script>
    <div class="row">
          <div class="col-md-12">
            <div class="row">
              <div class="col-md-12 sortable-list">
                <div>
                  <div class="slideNumber">1</div>
                  <div class="box">Div</div>
                </div>
                <div>
                  <div class="slideNumber">2</div>
                  <div class="box">Div</div>
                </div>
                <div>
                  <div class="slideNumber">3</div>
                  <div class="box">Div</div>
                </div>
                <div>
                  <div class="slideNumber">4</div>
                  <div class="box">Div</div>
                </div>
                <div>
                  <div class="slideNumber">5</div>
                  <div class="box">Div</div>
                </div>
                <div>
                  <div class="slideNumber">6</div>
                  <div class="box">Div</div>
                </div>
              </div>
            </div>
        </div>
    </div>

    【讨论】:

    • 是的,这是我的第二种方法。拖动框时可以在这种方法中应用可排序插件而无需重新定位。
    猜你喜欢
    • 2017-08-29
    • 1970-01-01
    • 2019-10-11
    • 2019-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多