前端之家收集整理的这篇文章主要介绍了
用jQuery实现优酷首页轮播图,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
大致介绍
看到了一个轮播图的思路,就想的自己动手实践一下,总体来说用jQuery实现起来简单多了
思路
思路其实非常简单,就是当点击图片下面的圆点或者图片两边的箭头时,让想要看到的图片走到它的位置,然后当前的图片和想要看到的图片按照一个方向运动就可以了
例如:我们点击第五个小圆点,让第五个图片跑到当前图片的后面,然后一起向左运动
当然了,如果你想要看前面的图片,让图片先跑到当前图片的左边,然后和当前图片一起向右运动
基本结构与样式
301_26@
301_26@
301_26@
301_26@
301_26@
@H_301_26@
}
.picture{
width: 1190px;
height: 480px;
position: absolute;
top: 0;
left: 88px;
overflow: hidden;
}
.picture li{
width: 1190px;
height: 410px;
margin: 0 auto;
list-style-type: none;
margin-top: 70px;
position: absolute;
overflow: hidden;
top: ;
left: ;
}
.picture img{
cursor: pointer;
}
.btn{
display: block;
width: 150px;
height: 30px;
position: absolute;
top: 460px;
left: 130px;
}
.btn li{
display: block;
width: 10px;
height: 10px;
background-color:white;
list-style-type: none;
position: absolute;
top: 0px;
left: 0px;
border-radius: 10px;
cursor: pointer;
}
active{
background-color: #03A9F4;
}
.btn li:hover{
background-color:#9e9e9e;
}
left{
position: absolute;
top: 240px;
left: 90px;
cursor: pointer;
}
right{
position: absolute;
top: 240px;
left: 1220px;
cursor: pointer;
}
然后我们用jQuery来设置初始图片的位置和小圆点的位置
不显示的
图片的位置
$pic.slice(1).each(function(){
$(this).css({
left:$picW
})
})
}
先来看看定义的全局变量
图片
var nowPic = 0;
// 防止
用户连续的点击
var canClick = true;
// 定时器
var timer = null;
设置nowPic是为了记录当前显示的图片,因为这个轮播图一共有三种触发图片切换的方法,所以这个变量是三个方法要共享的
设置canClick变量是为了防止用户在图片切换动画效果还未完成的时候在进行点击
自动切换
timer = setInterval(function(){
auto();
},2000);
//
自动切换
function auto(){
var index = nowPic + 1;
if(index < 0){
index = 4;
}else if(index > 4){
index = 0;
}
$pic.eq(index).css('left',$picW);
$pic.eq(nowPic).animate({left:-$picW},400);
$pic.eq(index).animate({left:0},400);
nowPic = index;
// 设置当前
图片的圆点的样式
$cir.eq(nowPic).attr('id','active').siblings().attr('id','');
}
点击小圆点
图片切换的方法都是一样的但是要注意,当点击小圆点时要清楚图片自动切换的定时器,在图片切换完成后,在设置自动切换的定时器
nowPic){
// 点击的值大于当前的值
$pic.eq(index).css('left',$picW);
$pic.eq(nowPic).animate({left:-$picW},400);
}else if(index < nowPic){
// 点击的值小于当前的值
$pic.eq(index).css('left',-$picW);
$pic.eq(nowPic).animate({left:$picW},400);
}
$pic.eq(index).animate({left:0},400,function(){
timer = setInterval(function(){
auto();
},3000);
});
nowPic = index;
// 设置当前
图片的圆点的样式
$cir.eq(nowPic).attr('id','');
});
}
点击箭头
当点击箭头时,我们为了防止用户多次连续的点击,所以设置了canClick这个全局变量,当点击了箭头时,要首先判断是否有为完成的动画即canClick是否为true,如果为true,就将canCilck设置为false,防止再次点击箭头,然后进行图片切换的动画,同样不要忘了清楚定时器,最后当切换图片的动画完成时,animate()方法的回调函数执行,将canClick设置为true
4){
index = 0;
}
$pic.eq(index).css('left',400);
$pic.eq(index).animate({left:0},function(){
canClick = true;
timer = setInterval(function(){
auto();
},'');
}
})
4){
index = 0;
}
$pic.eq(index).css('left','');
}
})
总结
这个效果实现起来很简单,就是刚开始没有想到实现的思路。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持编程之家!