如何改善网站标题的滑动效果?

时间:2011-07-28 14:36:52

标签: jquery jquery-animate slidedown slideup

这是我在此页面上制作滑动效果的方式:dmg-01.net

$(document).ready(function(){
  $(".trail-text").attr("style", "display:none;");
  if ($("#one,#two,#three,#four,#five")) {
    var pixies = $("#one,#two,#three,#four,#five");
    $("#one,#two,#three,#four,#five").hover( function() { 
      $(this).find(".trail-text").slideDown("fast"); 
    }, function() { 
      $(this).find(".trail-text").slideUp("fast"); 
    });
  };
});

我想改进它,因为它不如我想要的那么优雅。我认为如果只有一个幻灯片效果同时发生而没有重叠会更好。

另一方面,我试图用这种方式达到同样的效果:

$(function(){
  $("#one,#two,#three,#four,#five").each(function(){
    $(this).hover(function(){
      $(this).animate({height: "100%", width: "100%"}, {queue:false, duration:111});
    },function() {
      $(this).animate({height: "44px", width: "44px"}, {queue:false, duration:333});
    });
  });
});

我放弃了它,因为我不知道如何为高度设置“auto”,并且“hidden”元素内的内容在元素外部可见。

如何改进?

根据我的目的,我更喜欢用CSS属性动画元素的后代。这就是我尝试这样做的方法,但它没有用。为什么呢?

$(document).ready(function(){
$(".trail-text").attr("style", "display:none;");
if ($(".#one,#two,#three,#four,#five")) {
$("#one,#two,#three,#four,#five").hover(
function() { $(this).find(".trail-text").animate({height: "100%", width: "444px"}, {queue:false, duration:111}); },
function() { $(this).find(".trail-text").animate({height: "0", width: "444px"}, {queue:false, duration:333}); }
);
};
});

3 个答案:

答案 0 :(得分:0)

使用jQuery“queue”方法链接动画。

答案 1 :(得分:0)

$(function(){
    $("#one,#two,#three,#four,#five").hover(function(){
      $(this).stop().animate({height: "100%", width: "100%"}, {queue:false, duration:111});
    },function() {
      $(this).stop().animate({height: "44px", width: "44px"}, {queue:false, duration:333});
    });
});

所以你可以跳过一个额外的循环

答案 2 :(得分:0)

最后,我改善了效果with this trick

但是,我更喜欢.animate而不是.slideDown/Up,因此我可以添加CSS属性。无论如何,动画很流畅,我很满意。感谢您的建议和改进!