【问题标题】:Draggable - How to restrain draggable element from going past the bottom of screen?Draggable - 如何限制可拖动元素越过屏幕底部?
【发布时间】:2012-12-01 18:01:17
【问题描述】:

我有一个只能通过 Y 轴拖动的元素。我希望它能够越过屏幕顶部(它可以),但禁止它越过屏幕底部。我阅读了关于遏制的 jQuery Draggable API,但没有找到关于我所问问题的答案,或者至少无法理解如何将其应用于我的案例。到目前为止,这是我的代码:

JavaScript:

$(document).ready(function() {
    $("#elem").draggable({
       axis: "y"
    });
});

【问题讨论】:

标签: javascript jquery css plugins user-interface


【解决方案1】:

肯定有更好的办法但是;

$(document).ready(function() {
    $("#elem").draggable({
       axis: "y",
       drag: function(event, ui) {
            if($(this).offset().top + $(this).outerHeight() > $(window).height()) {
                $(this).offset({"top": $(window).height() - $(this).outerHeight()});
                event.preventDefault();
            }
       }
    });
});

【讨论】:

    【解决方案2】:

    您需要将包含选项设置为页面高度。

    $(document).ready(function() {
        $("#elem").draggable({
           containment: "document",
           scroll: false,
           axis: "y"
        });
    });
    

    【讨论】:

    • 这限制了它的拖动,因为document 的包含是屏幕的高度。这意味着它不会超过顶部 底部。我希望它越过顶部,而不是底部。似曾相识少校。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多