用jquery从左边向右滑动

时间:2015-06-10 11:00:02

标签: javascript jquery html animation slide

我正在使用这个小提琴来完成我的项目,但我想让目标从右向左滑动。如果您检查链接链接,您可以看到目标div从左到右滑动。

jQuery(function ($) {
    $('a.panel').click(function () {
        var $target = $($(this).attr('href')),
            $other = $target.siblings('.active');

        if (!$target.hasClass('active')) {
            $other.each(function (index, self) {
                var $this = $(this);
                $this.removeClass('active').animate({
                    left: $this.width()
                }, 500);
            });

            $target.addClass('active').show().css({
                left: -($target.width())
            }).animate({
                left: 0
            }, 500);
        }
    });

});

http://jsfiddle.net/sg3s/rs2QK/这是一个演示。

请帮助我真的很感激。

1 个答案:

答案 0 :(得分:4)

我找到的唯一快速和脏选项是在动画完成时使用zIndex并使用right重新定位非活动元素。

jQuery(function($) {

    $('a.panel').click(function(e) {
        e.preventDefault();
        var $target = $($(this).attr('href')),
            $other = $target.siblings('.panel');

        if (!$target.hasClass('active')) {

            $other.css({zIndex: 1});
            $target.addClass('active').show().css({
                right: -$target.width(),
                zIndex: 2
            }).animate({
                right: 0
            }, 500, function() {
                $other.removeClass('active').css({
                    right: -$other.first().width()
                });
            });
        }
    }); 
});

过滤兄弟姐妹的另一种方法是:

var href = $(this).attr('href');
var idStr = href.replace(/[#\d]+/g, ''); // = 'target'
var $other = $target.siblings("[id^='" + idStr + "']"); // siblings with id that starts with 'target'

<强> -Updated fiddle-