单击外面时向后滑动

时间:2013-08-09 13:35:12

标签: javascript jquery

嗨我想让我的侧滑块按钮在用户点击它之外时平滑地滑回到位置。

如果你想在这里检查它是jfiddle

截至目前,当你在它外面点击它时它不会回到位置。

JS

$(document).ready(function () {
    $('#slideleft .mybutton').click(function () {
        var $lefty = $(this).parent();
        $lefty.animate({
            left: parseInt($lefty.css('left'), 10) == 0 ? -$lefty.outerWidth() + 31 : 0
        });
    });
});

3 个答案:

答案 0 :(得分:1)

请尝试以下方法:

$(document).mouseup(function (e) {
        var $lefty = $('#slideleft .mybutton').parent();
        var container = $("#slideleft");
        if (parseInt($lefty.css('left')) == 0) if (container.has(e.target).length === 0) {
            animate();
        }
    });

这是一个工作小提琴:

JSFiddle

答案 1 :(得分:1)

使用一些event.target技巧可以实现:

$(document).on('click', function (event) {
    if (event.target !== $('#slideleft .mybutton')[0]) {
        $('#slideleft .mybutton').hide(); //or slide however you want to.
    }
});

如果您注意到这实际上比较了实际的HTML而不是jQuery对象。 这是因为.target会返回所点击内容的实际HTML。

答案 2 :(得分:1)

添加此作品:

$(document).click(function () {
    var $lefty = $('#slideleft .mybutton').parent();
    if(parseInt($lefty.css('left'), 10) == 0){
    $lefty.animate({
        left: -$lefty.outerWidth() + 31
    });
    }
});

以下是fiddle