完美的js图片轮换效果
本文实例为大家分享了js轮播图焦点的具体代码,供大家参考,具体内容如下
<!DOCTYPEhtml>
<htmllang="en">
<head>
<metacharset="UTF-8">
<title>轮播图焦点</title>
<metacontent="还是有地点小瑕疵,1左转变4,4右转变1的时候,图片切换有空白,换下动画模式应该可以?">
<style>
*{
padding:0;
margin:0;
}
ul{
list-style:none;
}
.scroll{
width:300px;
height:200px;
border:1pxsolidred;
margin:100pxauto;
position:relative;
overflow:hidden;
}
.scrollul.imgUl{
width:400%;
position:absolute;
top:0;
left:0;
}
.scrollul.imgUlli{
float:left;
}
.scroll.imgUlimg{
vertical-align:middle;/*消除图片间3px的间距*/
}
.scrollul.focus{
position:absolute;
left:50%;
bottom:10px;
margin-left:-80px;
}
.scrollul.focusli{
width:20px;
height:20px;
padding:5px;
text-align:center;
margin-right:10px;
border:2pxsolidyellow;
float:left;
color:red;
font-weight:700;
background-color:#333;
color:white;
}
.scrollul.focusli.current{
background-color:deeppink;
}
.scroll.arrow{
width:100%;
position:absolute;
top:50%;
left:0;
margin-top:-20px;
display:none;
}
.scroll.arrowdiv{
width:40px;
height:40px;
font:70018px/40px"宋体";
text-align:center;
background:rgba(0,0,0,.3);
color:#fff;
cursor:pointer;
}
.scroll.arrowdiv.left{
float:left;
}
.scroll.arrowdiv.right{
float:right;
}
</style>
<script>
window.onload=function(){
function$(id){returndocument.getElementById(id);}
varscrollDiv=$('scrollDiv');
varimgul=$('images');
varfocusUl=$('focuses');
varimgLis=imgul.children;
varleader=0,target=0;
varcurIndex=0;//记录当前图片的序号
varleftArrow=$('leftArrow');
varrightArrow=$('rightArrow');
//可自动生成和图片对应的序号
/*for(vari=0;i<imgLis.length;i++){
varnewLi=document.createElement('li');
newLi.innerHTML=i+1;
focusUl.appendChild(newLi);
}*/
varfocusLis=focusUl.children;
for(vari=0;i<focusLis.length;i++){
focusLis[i].index=i;
focusLis[i].onmouseover=function(){
curIndex=this.index;
switchFocus(curIndex);
target=-this.index*300;
}
}
scrollDiv.onmouseover=function(){
$('arrowDiv').style.display="block";
clearInterval(timer);
}
scrollDiv.onmouseout=function(){
$('arrowDiv').style.display="none";
timer=setInterval(autoPlay,3000);
}
leftArrow.onclick=function(){
target+=300;
curIndex=curIndex==0?focusLis.length-1:curIndex-1;
switchFocus(curIndex);
}
rightArrow.onclick=function(){
target-=300;
curIndex=(curIndex+1)%focusLis.length;
switchFocus(curIndex);
}
//缓动效果
setInterval(function(){
if(target>0){
target=-900;
leader=-1000;
}elseif(target<-900){
target=0;
leader=100;
}
leader=leader+(target-leader)/10;
imgul.style.left=leader+"px";
},10);
switchFocus(0);
//每隔3s左移图片
vartimer=null;
timer=setInterval(autoPlay,3000);
functionautoPlay(){
target-=300;
curIndex=(curIndex+1)%focusLis.length;
switchFocus(curIndex);
}
//转换样式
functionswitchFocus(curIndex){
for(varj=0;j<focusLis.length;j++){
focusLis[j].className="";
}
focusLis[curIndex].className="current";
}
}
</script>
</head>
<body>
<divclass="scroll"id="scrollDiv">
<ulclass="imgUl"id="images">
<li><imgsrc="images/01.jpg"alt=""></li>
<li><imgsrc="images/02.jpg"alt=""></li>
<li><imgsrc="images/03.jpg"alt=""></li>
<li><imgsrc="images/04.jpg"alt=""></li>
</ul>
<ulclass="focus"id="focuses">
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
</ul>
<divclass="arrow"id="arrowDiv">
<divclass="left"id="leftArrow"><</div>
<divclass="right"id="rightArrow">></div>
</div>
</div>
</body>
</html>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。