slideToggle:两个不同的缓和

时间:2013-11-27 18:58:53

标签: jquery slidetoggle easing

我使用slideToggle包含一个用于按下标题的通知栏。

$(document).ready(function() {
     $('#test').click(function() {
          $('#preheader').slideToggle('slow', 'easeOutBounce');
     });
});

现在我想使用两种不同的缓和方式。如果它打开,我希望它打开/下推线性。当它关闭时我希望它反弹。

如何实现slideToggle的相同效果,但每次打开/关闭事件只能使用两种不同的缓动?

2 个答案:

答案 0 :(得分:3)

这样的事情可行:

$(document).ready(function() {
     $('#test').click(function() {
          $('#preheader').slideToggle('slow', ($('#preheader').is(':visible') ? 'easeOutBounce' : 'slideDown'));
     });
});

答案 1 :(得分:1)

使用标志知道元素何时打开或关闭,并根据该值设置动画和缓动:

$(document).ready(function() {
     $('#test').on('click', function() {
          var open   = $(this).data('open'),
              easing = open ? 'easeOutBounce' : 'easeInBounce';

          $('#preheader')[open ? 'slideUp' : 'slideDown']('slow', easing);

          $(this).data('open', !open);
     });
});

FIDDLE