javascript - 限制在一个div内拖动,在受限的div内限制一定高度?

标签 javascript jquery html css jquery-ui

我正在使用 jQuery 的 draggable({containment: }); 来限制在特定区域内的拖动。我的问题是如何在受限的 div 内限制在 Y 轴的某个级别之后拖动?

jQuery("#map").draggable({
    containment: $('#range'),
    /////*
    stop: function(event, ui) {
        if(ui.position.bottom>375) {
          // stop dragging if exceed y axis 375 px ?
        }
    }
    */////
});

最佳答案

containment选项接受坐标数组,您可以从包含元素的高度中减去 375px

(示例代码。确切的坐标取决于您的 CSS 和 HTML 结构)

$("#map").draggable({
    containment: [ 
        $('#range').offset().left,
        $('#range').offset().top,
        $('#range').offset().left + $('#range').width() - $("#map").innerWidth(),
        $('#range').offset().top + $('#range').height() - 275 
    ]
});
#range{
    width: 400px;
    height: 400px;
    background: #ccc;
}

#map{
    padding:5px;
    max-width:36px;
    background:black;
    color:white;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://code.jquery.com/ui/1.11.2/jquery-ui.min.js"></script>

<div id=range>
  <div id=map>MAP</div>
</div>


另一种解决方案是在 #range 元素内创建一个 #virtual-range 元素,并将其高度设置为 $('#range').height ()-375。然后使用 #virtual-range 作为拖动区域。再一次 - 一切都取决于您的 CSS 和 HTML 结构。

$('#virtual-range').css('height', $('#range').height()-275);

$("#map").draggable({
    containment: $('#virtual-range')
});
#range{
    margin-left: 50px;
    margin-top: 50px;
    width: 400px;
    height: 400px;
    background: #ccc;
}

#map{
    padding:5px;
    max-width:36px;
    background:black;
    color:white;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://code.jquery.com/ui/1.11.2/jquery-ui.min.js"></script>

<div id=range>
    <div id=virtual-range>
        <div id=map>MAP</div>
    </div>
</div>

关于javascript - 限制在一个div内拖动,在受限的div内限制一定高度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28779345/

相关文章:

javascript - Highcharts:通过单击饼图切片来控制 div 的显示/隐藏

javascript - ExtJS 反转边框布局行为

jquery - Div 没有很好地居中

javascript - 数据属性中的放大弹出设置类型

javascript - 如何在 AngularJS 部分模板中包含第 3 方 JavaScript 库?

javascript - 通过 javascript 更改按钮删除线

javascript - 如何使用 jQuery 或 Javascript 将按钮重定向到另一个页面

jquery - 使用 jQuery 克隆多个表行

html - 响应式 Bootstrap 不适用于 Rails 元素中的移动设备

html - 使用 React 组件状态更改 currentTime