Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JQuery UI可拖动已锁定到窗口_Javascript_Jquery_Html_Jquery Ui_Draggable - Fatal编程技术网

Javascript JQuery UI可拖动已锁定到窗口

Javascript JQuery UI可拖动已锁定到窗口,javascript,jquery,html,jquery-ui,draggable,Javascript,Jquery,Html,Jquery Ui,Draggable,我创建了一个非常简单的地图,我希望它是可绘制的 代码如下: 它起作用了,我可以随意移动地图。但是我想把它锁在“窗口”上,这样当它被拖动时就不会有空白,我希望你明白我的意思。 我还查看了jquery ui中的概述,但没有找到我需要的任何东西。检查这应该可以做到这一点。您需要将移动约束到一组坐标,以使其正常工作。虽然有点混乱,但是包容基于元素的左上角约束元素 $(function() { var con = $('#container'); var cw = con.width(

我创建了一个非常简单的地图,我希望它是可绘制的

代码如下:

它起作用了,我可以随意移动地图。但是我想把它锁在“窗口”上,这样当它被拖动时就不会有空白,我希望你明白我的意思。
我还查看了jquery ui中的概述,但没有找到我需要的任何东西。

检查这应该可以做到这一点。

您需要将移动约束到一组坐标,以使其正常工作。虽然有点混乱,但是包容基于元素的左上角约束元素

$(function() {
    var con = $('#container');
    var cw = con.width( ), ch = con.height( );
    var map = $('#map');
    var mw = map.width( ), mh = map.height( );
    var x1 = -mw + cw, y1 = -mh + ch;
    map.draggable({containment:[x1,y1,0,0]});
});

有一个简单的方法(如果我理解得很好):


嘿,谢谢你的重播。我已经试过了,但是它是“bug”,可能是因为溢出:隐藏?啊,是的,我可以在JSFIDLE上看到它,对我来说似乎很奇怪。我会给你举个例子。同时,请看一下wijmo superpanel,它是一种稍微不同的方法,实际上并不相同,但可能适合您(只是一个建议,而不是一个解决方案;)。是的,它当然不起作用,愚蠢的我:)它不起作用,因为可拖动的元素比容器大,所以你看到的实际上不是“马车”,但它会捕捉到你拖动到的一侧。。。我认为您必须计算它可以拖动的坐标,即左上角将是
x=mapWidth viewportwidth
或类似的东西。很抱歉一开始就误导了你;)这对我不管用。容器是否需要一些css?con.width()和con.height()为我生成null。
$('#map').draggable({
    containment: 'window',
    scroll: false
});