【问题标题】:Jquery Draggable - How do I make a dragged element snap in pixel incrementsJquery Draggable - 如何使拖动的元素以像素增量对齐
【发布时间】:2013-10-25 03:39:57
【问题描述】:

对于我的应用程序,在一个元素被拖动并捕捉到可放置区域后,我需要继续允许该拖动的项目仅垂直移动。我已经完成了这项工作,但我还需要将该项目仅拖动并捕捉到像素增量。如何做到这一点?

例如,我有一个时间线,我需要元素以 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");
                }
            });

【问题讨论】:

  • 你能把你的代码的sn-p放进去吗?
  • 也许这会有所帮助? greensock.com/draggable
  • @vyx.ca 似乎不支持我想要的捕捉。
  • 我刚刚重现了您当前的情况here。但我没有准确地得到only be dragged and snapped to pixel increments
  • 只是一个想法:jsfiddle.net/Rusln/M57Kd/1,设置多个可放置区域作为时间轴上的点?

标签: javascript jquery jquery-ui jquery-ui-draggable jquery-ui-droppable


【解决方案1】:

试试这个

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

在上面的示例中,它将在每个方向上仅拖动一个像素

请注意:不要忘记添加您的其他选项。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-19
    • 1970-01-01
    • 1970-01-01
    • 2010-10-09
    • 1970-01-01
    • 1970-01-01
    • 2018-10-13
    • 1970-01-01
    相关资源
    最近更新 更多