这是我在此页面上制作滑动效果的方式: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}); }
);
};
});
答案 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属性。无论如何,动画很流畅,我很满意。感谢您的建议和改进!