前提布局: 左浮li标签,支持左右切换,自动轮播,源码:
参数:ul: 需要动画的ul prev:上一个切换按钮 next: 下一个切换按钮
function rotation(ul, prev, next) {
var li = $(ul).find("li");
var liWidth = li.width();
var liLength = $(ul).find("li").length;
var interval;
$(ul).width(liWidth * liLength);
/*上一个按钮点击*/
$(prev).click(function(){
delay();
animate("prev");
});
/*下一个按钮点击*/
$(next).click(function(){
delay();
animate("next");
});
/*动画*/
function animate(direction){
if($(ul).is(":animated"))
{
return;
}
if (direction == "next") {
$(ul).animate({
left: -liWidth
}, 1000, "easeOutSine", function () {
//定位回调成原来状态
$(ul).append($(ul).find("li:first-child"));
$(ul).css({left: 0});
});
}
else if (direction == "prev") {
//定位
$(ul).prepend($(ul).find("li:last-child"));
$(ul).css({left: -liWidth});
//logo图片动画
$(ul).animate({
left: 0
}, 1000, "easeOutSine");
}
}
/*自动轮播*/
function play() {
interval = setInterval(function () {
animate("next")
}, 3000);
}
play();
/*清除并启动定时器*/
function delay() {
clearInterval(interval);
play();
}
/*光标悬浮li标签时清除自动轮播*/
$(li).hover(function(){
clearInterval(interval);
},function(){
play();
});
}