0

ハンドラーを使用してドラッグ可能な画像を作成するにはどうすればよいですか?ハンドラーはドラッグ可能な内部にある必要があることを読みましたが、画像内に別の要素を実際に含めることはできません。

私はここにもっと良いプレゼンテーションのためのフィドルを持っています:

http://jsfiddle.net/index/bfpWv/10/

質問は、どのようにして内部をドラッグして#viewportも移動できるようにする必要があるかということ#imageです。

編集

質問は少し曖昧だったと思います。

今(フィドル上で)#image最初をクリックしてドラッグすると、がドラッグされ#imageます。しかし、#viewport最初をクリックすると、クリックしません。それが私がしたいことです。#viewport最初をクリックしてドラッグすると、それでもドラッグされます#image

4

3 に答える 3

3

jqueryのドラッグ可能には、ハンドラーをドラッグ可能内に配置する必要があるようです。ほんの数行のコードで独自のドラッグ可能ファイルを作成できます。ここで私のデモを参照してください

HTML:

<div id="container">
    <img id="image" src="http://thechive.files.wordpress.com/2011/03/hot-sexy-redheads-12.jpg" />
    <div id="viewport"></div>
</div>

JS:

$(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;  
    });
});
于 2013-02-18T04:41:37.383 に答える
0

あなたのフィドルを更新しました。ここからドキュメントを読んでください: http://api.jqueryui.com/draggable/#option-containment

メソッドで包含オプションを使用する必要があり、最初に の中に入れるため.draggableに、画像を の中に入れる必要もあります。の外側に保持することもできます。一度内側にドラッグすると、外側に再度ドラッグすることはできません。#viewport#viewport#viewport#viewport

于 2013-02-15T03:51:02.537 に答える
0

あなたの説明を考慮して、 どのように内部をドラッグし#viewportて移動#imageできるようにする必要がありますか -単純なz-index cssスタイルを使用してそれを行いました。今回はそれが役立つことを願っています。 フィドル

于 2013-02-15T12:42:23.383 に答える