我一直在尝试创建一个文本滑块,它会淡入并滑入,然后淡出并滑出。然后下一个元素出现并做同样的事情。
管理得出这个。
$(document).ready(function() {
$('#heading1').css({opacity: 0}).animate({opacity: 1.0,left: "50px"}, 1000);
$('#heading1').css({opacity: 0}).delay(5000).animate({opacity: 0,left: "-50px"}, 1000);
$('#heading2').css({opacity: 0}).delay(7000).animate({opacity: 1.0,left: "50px"}, 1000);
$('#heading2').css({opacity: 0}).delay(5000).animate({opacity: 0,left: "-50px"}, 1000);
$('#heading3').css({opacity: 0}).delay(14000).animate({opacity: 1.0,left: "50px"}, 1000);
$('#heading3').css({opacity: 0}).delay(5000).animate({opacity: 0,left: "-50px"}, 1000);
$('#heading4').css({opacity: 0}).delay(21000).animate({opacity: 1.0,left: "50px"}, 1000);
$('#headings4').css({opacity: 0}).delay(5000).animate({opacity: 0,left: "-50px"}, 1000);
})
在那里有那些延迟似乎有点微不足道?有没有更有效的方法,我怎么能循环这个,所以它不断循环。
答案 0 :(得分:2)
不是最好的解决方案,但它会让你开始走上正轨。
var heading_cur=0;//current header
function showHeading(){
$('#heading'+(heading_cur+1)).css({opacity: 0}).animate({opacity: 1.0,left: "50px"}, 1000);
setTimeout(hideHeading, 5000);//hide it in 5 seconds
}
function hideHeading(){
$('#heading'+(heading_cur+1)).css({opacity: 1}).animate({opacity: 0,left: "-50px"}, 1000
,function(){
showHeading();//show the next when this has completed
});
heading_cur=(heading_cur+1)%4;
}
$(document).ready(function() {
showHeading();//start the loop
})
CSS
#heading1,#heading2,#heading3,#heading4{
position:absolute;
left:0;
opacity:0;/* Initial state */
}