Javascript 可拖动约束?

Javascript 可拖动约束?,javascript,jquery,Javascript,Jquery,我发现这两个非常简单的draggablediv代码块:和 在没有jQuery UI的情况下,如何使用JS/jQuery将x轴的移动限制到屏幕宽度 我确实搜索了,但我发现只有对jQuery UI的引用。。你自己怎么做?我将根据你链接到的第一个代码片段来编写 为了将div约束为水平移动,只需删除设置top偏移的代码部分 之后,需要考虑将div约束到窗口的边界。当前偏移div的坐标(e.pageX+pos\u x-drg\u w)对应于div的左上角。我们不希望它超过窗口的最左侧边界,或x=0。数学上

我发现这两个非常简单的draggable
div
代码块:和

在没有jQuery UI的情况下,如何使用JS/jQuery将x轴的移动限制到屏幕宽度


我确实搜索了,但我发现只有对jQuery UI的引用。。你自己怎么做?

我将根据你链接到的第一个代码片段来编写

为了将div约束为水平移动,只需删除设置
top
偏移的代码部分

之后,需要考虑将div约束到窗口的边界。当前偏移div的坐标(
e.pageX+pos\u x-drg\u w
)对应于div的左上角。我们不希望它超过窗口的最左侧边界,或
x=0
。数学上实现这一点的一个好方法是使用
Math.max
函数,该函数将返回两个值中的较大值

left: Math.max(e.pageX + pos_x - drg_w, 0)
现在我们需要检查窗口的右边框。我们获取右边界的坐标(
$(window).width()
)并减去div的宽度,因为我们正在对照它检查div的右边缘。相应地,
Math.min
可以在这种情况下发挥很大的作用

现在大家在一起,

$('.draggable').offset({
    left: Math.min($(window).width() - drg_w, Math.max(e.pageX + pos_x - drg_w, 0))
})

以及这些微小变化的一部分。:)

@ItsGreg OP的可能副本未使用jQueryUI:)我搜索过了,你编码了吗?你的代码在哪里?可能与@FrédéricHamidi重复什么代码?我已经告诉过你,谷歌搜索的前10页只是关于jQueryUI,而不是DIY,我们都知道,在谷歌搜索了10页之后,会有无尽的空白。非常简单的代码链接到问题。这太棒了。:-)我的问题可能设置不正确,我不想禁用y轴,只是为了约束x轴,但仍然。。回答得好@哦,好的。如果需要,您也可以使用类似的调整来约束y轴的边界。:)