javascript - 滑动框在移动时上下跳动

标签 javascript jquery html css

我有这段代码,我一直在使用它,但在我的一生中,我无法弄清楚为什么会这样。当您单击并从左向右拖动一个框时,其余部分会滑动以按设计填充空位。当发生这种情况时,其余的框会下降,而不是在我放下我单击并拖动的框时备份。有没有办法让所有东西都与移动的盒子保持在同一水平线/同一直线上?

$( function() {
       $( "#sortable" ).sortable();
       $( "#sortable" ).disableSelection();
      } );
 #sortable { list-style-type: none;
			  margin: 0;
 			  padding: 0;
			  width: 100%;
			  border: 1px solid black;
			  }

              #sortable li { margin: 0 3px 3px 3px;
				 padding: 0.4em;
				 padding-left: 1.5em;
				 font-size: 1.4em;
				 height: 128px;
				 width: 150px;
				 display: inline-block;
				 padding: 5px;
				 border: 1px solid black;
				 background-color: #BF55EC;
				 }
				 
              #sortable li span { position: absolute;
					  margin-left: -1.3em;
					}
  
      .topper {
		
		padding-top: 100px; 
       }
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>

<div class="topper">
  <ul id="sortable">
   <li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 1</li>
   <li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 2</li>
   <li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 3</li>
   <li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 4</li>
  </ul>
</div>
 

jsFiddle HERE: 任何帮助将不胜感激!

最佳答案

如果将 display:inline-block 更改为 display:block 并添加 float:left,您将获得相同的布局,但跳跃不再发生。

我不知道为什么他们用inline-block 跳转,但这会解决它。

$( function() {
       $( "#sortable" ).sortable();
       $( "#sortable" ).disableSelection();
      } );
 #sortable { list-style-type: none;
			  margin: 0;
 			  padding: 0;
			  width: 100%;
			  border: 1px solid black;
			  }

              #sortable li { margin: 0 3px 3px 3px;
				 padding: 0.4em;
				 padding-left: 1.5em;
				 font-size: 1.4em;
				 height: 128px;
				 width: 150px;
				 display: block;
         float: left;
				 padding: 5px;
				 border: 1px solid black;
				 background-color: #BF55EC;
				 }
				 
              #sortable li span { position: absolute;
					  margin-left: -1.3em;
					}
  
      .topper {
		
		padding-top: 100px; 
       }
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>

<div class="topper">
  <ul id="sortable">
   <li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 1</li>
   <li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 2</li>
   <li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 3</li>
   <li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 4</li>
  </ul>
</div>

关于javascript - 滑动框在移动时上下跳动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48215987/

相关文章:

javascript - Angularjs UI 选择 StartsWith 搜索

javascript - Socket.IO + 表情符号

javascript - Bootstrap 切换多个元素上的文本更改

javascript - Chrome 扩展程序弹出窗口中未定义“$”

javascript - 如何监听所有窗口的自定义事件,冒泡问题?

javascript - Node/NPM/Grunt 在 jscs (grunt-jscs) 上失败

javascript - 重复表单字段按钮时出现问题

jQuery datepicker 立即更改年/月

jquery - 如何找到影响元素的 jQuery 脚本?

javascript - jQuery last-child 和 insetBefore 不起作用