0

私のアプリケーションでは、要素をドラッグしてドロップ可能ゾーンにスナップした後、ドラッグしたアイテムを垂直方向にのみ移動できるようにする必要があります。すでに先に進んでこれを行っていますが、そのアイテムをドラッグしてピクセル単位でスナップする必要もあります。これはどのように行うことができますか?

たとえば、タイムラインがあり、要素を 15 分単位でスナップする必要があるとします。これがドラッグ可能な機能で可能かどうかを知る必要がありますか、それともスライダーハイブリッドを考え出す必要がありますか? 可能であれば、ハイブリッドアプローチを使用したくありません。

コードスニペット:

$(".activity_link").draggable({
                "snap": ".trek_slider",
                "snapMode": "inner",
                // "snapTolerance" : 30,
                "revert": function (event, ui) {
                    // on older version of jQuery use "draggable"
                    // $(this).data("draggable")
                    // on 2.x versions of jQuery use "ui-draggable"
                    // $(this).data("ui-draggable")
                    $(this).data("uiDraggable").originalPosition = {
                        top: 0,
                        left: 0
                    };

                    $(this).draggable("option", "axis", false);

                    // return boolean
                    return !event;
                    // that evaluate like this:
                    // return event !== false ? false : true;
                }
            });

            $(".trek_slider").droppable({
                "tolerance": "touch",
                "over": function (event,
                    ui) {
                    var left_position = parseInt($(ui.draggable).css("left"));

                    $(ui.draggable).find(".activity_caret").show();

                    $(ui.draggable).draggable("option", "axis", "y");
                }
            });
4

1 に答える 1

1

これを試して

$( ".your_div" ).draggable({ grid: [ 1,1 ] });

上記の例では、各方向に 1 ピクセルだけドラッグされます。

注意: 他のオプションを追加することを忘れないでください。

于 2013-10-25T09:17:39.153 に答える