js实现轮播图特效
本文实例为大家分享了js实现轮播图特效的具体代码,供大家参考,具体内容如下
只需要修改图片的src即可
html:
style:
*{
margin:0;
padding:0;
}
.clearfix{
zoom:1;
}
.clearfix:after{
content:"";
display:block;
height:0;
visibility:hidden;
clear:both;
}
#rollImgBox{
/*这里让盒子居中,应用到具体页面删除即可*/
margin:20pxauto;
/*如果该轮播图不是独占一行,需要将其改为行内块元素*/
display:block;
position:relative;
/*在这里设置装载图片的框框的宽高*/
width:947px;
height:585px;
/*在这里设置边框的样式用outline,这样就不会影响到后面的js了
/*加边框,用outline即可,不会影响实际的距离*/
outline:5pxsolidblue;
overflow:hidden;
}
#rollImgBox.photos.moveimg{
/*在这里设置图片的宽高,与边框的宽高相同*/
width:947px;
height:585px;
}
#rollImgBox.photos{
position:relative;
/*移动的是图片的宽度,左移947px*/
left:-947px;
}
#rollImgBox:hover{
cursor:pointer;
}
#rollImgBox.photosdiv{
float:left;
}
#rollImgBox.points{
position:absolute;
/*在这里修改圆点导航的位置*/
bottom:30px;
right:170px;/*右下方*/
text-align:center;
}
#rollImgBox.pointsspan{
display:inline-block;
/*在这里可以更改圆点的大小*/
text-align:center;
line-height:66px;
font-size:24px;
font-family:微软雅黑;
width:66px;
height:66px;
background:rgba(112,117,112,.6);
border-radius:50%;
margin-left:15px;
}
#rollImgBox.points.pointsNow{
background:rgba(62,255,49,.6);
}
/*左右按钮*/
#rollImgBox.leftPoint{
width:60px;
height:60px;
background:rgba(0,0,0,.5);
text-align:center;
line-height:60px;
position:absolute;
font-size:30px;
color:white;
top:290px;
left:0;
}
#rollImgBox.rightPoint{
width:60px;
height:60px;
background:rgba(0,0,0,.5);
text-align:center;
line-height:60px;
position:absolute;
font-size:30px;
color:white;
top:290px;
right:0;
}
#rollImgBox.leftPoint:hover{
background:rgba(255,0,0,.5);
}
#rollImgBox.rightPoint:hover{
background:rgba(255,0,0,.5);
}
script:
window.onload=function(){
letrollImgBox=document.querySelector("#rollImgBox");
letphotos=document.querySelector("#rollImgBox.photos");
letallimg=document.querySelectorAll("#rollImgBox.moveimg");
letindex=2;
//动态设计移动图片的框框宽高
//(rollImgBox.offsetWidth)是要剪去边框的宽度
photos.style.width=(allimg.length)*(rollImgBox.offsetWidth)+"px";
photos.style.height=rollImgBox.offsetHeight+"px";
//动态创建小圆点
letpoint=newArray();
letpoints=document.querySelector("#rollImgBox.points");
for(leti=0;i<(allimg.length-2);i++){
point[i]=document.createElement("span");
point[i].innerHTML=(i+1);
points.appendChild(point[i]);
}
point[0].className="pointsNow";
letrollImgIterval=setInterval(function(){
//图片的轮播
if(index===allimg.length){
photos.style.left=0;
index=1;
photos.style.transition="0s";
point[0].className="pointsNow";
}else{
photos.style.transition="1.5s";
}
photos.style.left=-(rollImgBox.offsetWidth)*index+"px";
index++;
//小圆点的变换
for(letj=0;j<(allimg.length-2);j++){
if(j===index-2){
point[j].className="pointsNow";
}else{
point[j].className="";
}
}
//这里是最后一张图片(与展现的第一张一样的图)设置小圆点样式
if(index===allimg.length){
point[0].className="pointsNow";
}
},2000);
//当用户把鼠标放到rollImgBox盒子中,需要查看图片,自动轮播停止
rollImgBox.onmouseover=function(){
clearInterval(rollImgIterval);
};
rollImgBox.onmouseout=function(){
rollImgIterval=setInterval(function(){
//图片的轮播
if(index===allimg.length){
photos.style.left=0;
index=1;
photos.style.transition="0s";
point[0].className="pointsNow";
}else{
photos.style.transition="1.5s";
}
photos.style.left=-(rollImgBox.offsetWidth)*index+"px";
index++;
//小圆点的变换
for(letj=0;j<(allimg.length-2);j++){
if(j===index-2){
point[j].className="pointsNow";
}else{
point[j].className="";
}
}
//这里是最后一张图片(与展现的第一张一样的图)设置小圆点样式
if(index===allimg.length){
point[0].className="pointsNow";
}
},2000);
};
//点击小圆点,跳转到对应的图片位置
for(letk=0;k<(allimg.length-2);k++){
point[k].onmousedown=function(){
photos.style.left=-(rollImgBox.offsetWidth)*(k+1)+"px";
//小圆点的变换
for(letj=0;j<(allimg.length-2);j++){
if(j===k){
point[j].className="pointsNow";
}else{
point[j].className="";
}
}
//点击小圆点之后更改index的值
index=k+2;
}
}
//点击左右方向键,对图片进行滑动
letleftPoint=document.querySelector('#rollImgBox.leftPoint');
letrightPoint=document.querySelector('#rollImgBox.rightPoint');
leftPoint.onclick=function(){
photos.style.transition="1s";
//向左滑动一张图片,并修改index的值(index--)
letdis=index-2;
//当dis为1时,圆点到达第一个位置,如果再往左移动一个,圆点应该到达最后一个位置
if(dis<1){
dis=allimg.length-2;
photos.style.left=0;
point[dis-1].className="pointsNow";
point[0].className="";
index=allimg.length;
}else{
photos.style.left=-(rollImgBox.offsetWidth)*dis+"px";
point[dis-1].className="pointsNow";
point[dis].className="";
}
//从第一张顺滑切换到最后一张
setTimeout(function(){
if(photos.style.left==='0px'){
photos.style.left=-(rollImgBox.offsetWidth)*(allimg.length-2)+"px";
photos.style.transition='0s';
index=allimg.length-1;
}
},1000);
index--;
};
rightPoint.onclick=function(){
photos.style.transition="1s";
//向右滑动一张图片,并修改index的值(index++)
letdis=index-1;
//当dis为5时,圆点到达最后一个位置,如果再往右移动一个,圆点应该到达第一个位置
if(dis>=(allimg.length-2)){
photos.style.left=-(rollImgBox.offsetWidth)*(allimg.length-1)+"px";
point[0].className="pointsNow";
point[allimg.length-3].className="";
index=1;
}else{
photos.style.left=-(rollImgBox.offsetWidth)*index+"px";
point[dis].className="pointsNow";
point[dis-1].className="";
}
//从最后一张顺滑切换到第一张
setTimeout(function(){
if(photos.style.left===((-(rollImgBox.offsetWidth)*(allimg.length-1))+'px')){
photos.style.left=-(rollImgBox.offsetWidth)+"px";
photos.style.transition='0s';
index=2;
}
},1000);
index++;
};
};
更多关于轮播图效果的专题,请点击下方链接查看学习
javascript图片轮播效果汇总
jquery图片轮播效果汇总
Bootstrap轮播特效汇总
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票,大家继续关注更多精彩焦点轮播图。