Javascript jqueryui可拖动移动图像处理程序

Javascript jqueryui可拖动移动图像处理程序,javascript,jquery,jquery-ui,jquery-ui-draggable,Javascript,Jquery,Jquery Ui,Jquery Ui Draggable,如何使用处理程序获得可拖动的图像?我已经读到处理程序应该在可拖动的内部,但是我不能在图像中有其他元素 我这里有一把小提琴,以便更好地演示: 问题是,我应该如何才能在#视口中拖动,同时仍然移动#图像 编辑 我觉得这个问题有点模糊: 因为现在(在小提琴上)当你先点击#图像并拖动时,它会拖动#图像。但是,当您首先单击#视口时,它不会。这就是我想要发生的,当你先点击#视口并拖动时,它仍然会拖动更新后的#图像。请阅读以下文档: 您必须在.draggable方法中使用包含选项,并且您还需要将图像放入#视

如何使用处理程序获得可拖动的图像?我已经读到处理程序应该在可拖动的内部,但是我不能在图像中有其他元素

我这里有一把小提琴,以便更好地演示:

问题是,我应该如何才能在
#视口
中拖动,同时仍然移动
#图像

编辑

我觉得这个问题有点模糊:

因为现在(在小提琴上)当你先点击
#图像
并拖动时,它会拖动
#图像
。但是,当您首先单击
#视口时,它不会。这就是我想要发生的,当你先点击
#视口
并拖动时,它仍然会拖动更新后的
#图像。请阅读以下文档:

您必须在
.draggable
方法中使用包含选项,并且您还需要将图像放入
#视口
中,以使其最初位于
#视口
中。您还可以将其保持在
#视口
之外,一旦您将其拖动到
#视口
之内,它就不会让您再将其拖动到外面

更新了您的。请阅读以下文档:


您必须在
.draggable
方法中使用包含选项,并且您还需要将图像放入
#视口
中,以使其最初位于
#视口
中。您还可以将其保持在
#视口
之外,一旦您将其拖动到
#视口
之内,它就不会让您再将其拖动到外面

考虑到你的描述 我应该如何在
#视口中拖动并仍然移动
#图像
--使用简单的z索引css样式实现了这一点。希望这次能有所帮助。
考虑到你的描述 我应该如何在
#视口中拖动并仍然移动
#图像
--使用简单的z索引css样式实现了这一点。希望这次能有所帮助。

jquery draggable似乎要求将处理程序放在draggable中。您只需几行代码就可以编写自己的draggable。看我的演示

HTML:


jquerydraggable似乎要求将处理程序放在draggable中。您只需几行代码就可以编写自己的draggable。看我的演示

HTML:


谢谢你的回答,但那不是我需要的。我需要能够在#视口中定位图像的某一部分。但我希望它甚至可以在#视口框中拖动。对不起,我没有得到它。是否还要将图像拖到视口外?我真的无法理解你想要实现什么。好吧,我想要实现的事情与我发布的小提琴的工作原理相同,只是我希望#视口也能移动图像。希望能澄清。谢谢你的回答,但那不是我需要的。我需要能够在#视口中定位图像的某一部分。但我希望它甚至可以在#视口框中拖动。对不起,我没有得到它。是否还要将图像拖到视口外?我真的无法理解你想要实现什么。好吧,我想要实现的事情与我发布的小提琴的工作原理相同,只是我希望#视口也能移动图像。希望这能解决问题。嗨。对不起,如果我的问题有点含糊。我想做的是,当我在
#视口
中单击第一个并开始拖动时,它仍然会移动
#图像
。您好。对不起,如果我的问题有点含糊。我想做的是,当我在
#视口
中单击第一个并开始拖动时,它仍然会移动
#图像
。是的!看起来确实如此。我想现在没有选择了。感谢这种方法,这将起作用,但我正在使用其他东西以及coords,我想我仍然可以通过改变和捕捉动作来获得它,但我现在将继续使用jrac,只需将#视口放在下面,只需使用几个框即可。但是谢谢你!是的!看起来确实如此。我想现在没有选择了。感谢这种方法,这将起作用,但我正在使用其他东西以及coords,我想我仍然可以通过改变和捕捉动作来获得它,但我现在将继续使用jrac,只需将#视口放在下面,只需使用几个框即可。但是谢谢你!
<div id="container">
    <img id="image" src="http://thechive.files.wordpress.com/2011/03/hot-sexy-redheads-12.jpg" />
    <div id="viewport"></div>
</div>
$(document).ready(function(){
    var isDragging, 
        top = 0, left = 0,
        curX, curY;

    $("#image").mousedown(function (e) {
        e.preventDefault();
    });

    $("#container").mousedown(function (e) {
        isDragging = true;

        curX = e.pageX;
        curY = e.pageY;

        left = Number($("#image").css("margin-left").
                      toString().replace("px", ""));
        top = Number($("#image").css("margin-top").
                     toString().replace("px", ""));
    });

    $(document).mouseup(function () {
        if (isDragging){
            // reset
            isDragging = false;
            top = 0;
            left = 0;
        }
    });

    $("#container").mousemove(function(e){
        if (!isDragging) {
            return;
        }

        left += e.pageX - curX;
        top += e.pageY - curY;

        // set the position
        $("#image").css("margin-left", left + "px").
            css("margin-top", top + "px");

        curX = e.pageX;
        curY = e.pageY;  
    });
});