javascript - Jquery UI 可拖动元素可以拖动超过所需的宽度

标签 javascript jquery css jquery-ui

我有两个具有可拖动功能的 div,但我想知道,有什么办法可以锁定它们,使其无法左右拖动?这是每个可拖动 div 的 css 和 js:

#the-sheet {
  position: absolute;
  margin-left: auto;
  margin-right: auto;
  border-radius: 25px;
  top: 200px;
  left: 250px;
  right: 250px;
  height: 400px;
  width: 1000px;
  background-color: #FFFAFA; 
  font-family: 'Open Sans', sans-serif;
  border: 1px solid red;  
}

#second-sheet {
  position: absolute;
  margin-left: auto;
  margin-right: auto;
  left: 250px; 
  right: 250px;
  border-radius: 25px;
  top: 650px;
  height: 500px;
  width: 1000px;
  background-color: #FFFAFA; 
  font-family: 'Open Sans', sans-serif;
  border: 1px solid red;
}

和 js:

$('#the-sheet, #second-sheet').draggable( {
    appendTo: "body",
    scrollSpeed: 600,
    snap: false,
});

我想要的是能够将它们拖动到一定数量,但它们可以被拖动到右边,从而扩大宽度,并被拖到超过我想要的宽度。

最佳答案

您可以使用包装器来“包含”可拖动的元素。

$('#the-sheet, #second-sheet').draggable( {
    appendTo: "body",
    scrollSpeed: 600,
    snap: false,
    containment: "#containment-wrapper"
});

显示行为的示例片段 -

$(document).ready(function() {
  $( ".box" ).draggable({ containment: "#containment-wrapper" })
})
.box{
  
    left:50px;
    top:50px;
    width: 150px;
    height: 150px;
    background: red
}

#containment-wrapper{
   width:300px;
   height:300px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.min.js"></script>
<div id="containment-wrapper">
    <div class="box"></div>

</div>

关于javascript - Jquery UI 可拖动元素可以拖动超过所需的宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59795524/

相关文章:

javascript - 在自定义 Angular 输入中传播输入

javascript - 在表格单元格jquery中选择div

Jquery move 表行但不 move 表头

html - Bootstrap 按钮大小而不改变导航栏的大小

css - 如何缩写表格元素的长 Selenium CSS 代码?

javascript - 动态 FLOT 图例表

javascript - 使用不同的浏览器和 Node.js 实现将 Javascript 库作为 ES6 模块发出

javascript - 在 ember-cli 中导入依赖项(例如,导入 math.js)

jQuery fullcalendar 自定义事件

html - 如何将背景图像放在一组单选按钮后面