gpt4 book ai didi

draggable - 只限制一个方向的拖动

转载 作者:行者123 更新时间:2023-12-04 14:30:18 25 4
gpt4 key购买 nike

使用 jQuery Draggable

如何限制可拖动对象被拖动 仅在一个方向 ?
即当 axis: 'y' 时只有顶部或只有底部
并且只有在 axis: 'x' 时才向左或仅向右

这意味着如果我想要一个可拖动的 (with axis set to 'y')只能拖到 bottom ,那么它不应该能够将它拖到顶部,即当试图拖到顶部时它应该保持在它的位置

这是我尝试过但不起作用的方法,即 draggable 仍在向上拖动

$('. draggable').draggable({
axis: 'y',
handle: '.top'
drag: function( event, ui ) {
var distance = ui.originalPosition.top - ui.position.top;

// if dragged towards top
if (distance > 0) {
//then set it to its initial state
$('.draggable').css({top: ui.originalPosition.top + 'px'});
}
}
});

最佳答案

回答我自己的问题(除上述答案之外的其他选择)以帮助他人

以具体案例说当轴:'y' 时仅允许向下拖动

<div class="draggable">draggable only downwards</div>

css
.draggable {
position:absolute;
top:0px;
background:pink;
height:100px;
width:100%;
left: 0px;
text-align:center;
}

脚本
$('.draggable').draggable({
axis: "y"
});

$('.draggable').on('mousedown', function() {
var x1 = x2 = $(".draggable").position().left;
var y1 = $(".draggable").position().top;
var y2 = ($(window).height() + $(".draggable").position().top);
$(".draggable").draggable('option', 'containment', [x1, y1, x2, y2]);
});

Demo Link

关于draggable - 只限制一个方向的拖动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15609776/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com