支持移动端原生js轮播图
直接上代码,自行复制粘贴,本人是新手,欢迎指正。
<!DOCTYPEHTML>
<htmllang="en-US">
<head>
<metacharset="UTF-8">
<title>轮播图</title>
<metacontent="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0;"name="viewport"/>
<styletype="text/css">
.container{
width:500px;
height:400px;
overflow:hidden;
margin:50pxauto;
position:relative;
}
.list{
width:2500px;
height:400px;
position:absolute;
left:0px;
}
.listimg{
float:left;
height:400px;
width:500px;
}
.buttons{
position:absolute;
width:75px;
height:20px;
bottom:10px;
left:50%;
margin-left:-38px;
z-index:2;
}
.buttonsspan{
width:10px;
height:10px;
margin-right:5px;
display:inline-block;
border-radius:5px;
background-color:gray;
opacity:0.5;
cursor:pointer;
}
.buttons.on{
background-color:rgb(255,50,50);
opacity:0.8;
}
.arrow{
position:absolute;
background-color:gray;
opacity:0.5;
height:40px;
width:40px;
color:#fff;
text-decoration:none;
line-height:40px;
font-size:28px;
font-weight:800;
text-align:center;
}
#prev{
top:50%;
left:10px;
margin-top:-20px;
}
#next{
top:50%;
right:10px;
margin-top:-20px;
}
</style>
</head>
<body>
<divid="container"class="container">
<divid="list"class="list">
<imgsrc="1.jpg">
<imgsrc="2.jpg">
<imgsrc="3.jpg">
<imgsrc="4.jpg">
<imgsrc="5.jpg">
</div>
<divid="buttons"class="buttons">
<spanindex="0"class="on"></span><!--
--><spanindex="1"></span><!--
--><spanindex="2"></span><!--
--><spanindex="3"></span><!--
--><spanindex="4"></span>
</div>
<ahref="javascript:;"rel="externalnofollow"rel="externalnofollow"id="prev"class="arrow"><</a>
<ahref="javascript:;"rel="externalnofollow"rel="externalnofollow"id="next"class="arrow">></a>
</div>
<scripttype="text/javascript">
window.onload=function(){
varcontainer=document.getElementById('container');
varlist=document.getElementById('list');
varbuttons=document.getElementById('buttons');
varbuttonsItem=buttons.getElementsByTagName('span');
varprev=document.getElementById('prev');
varnext=document.getElementById('next');
varindex=0;
varstartX=0;
varendX=0;
container.addEventListener('touchend',function(event){
if(event.changedTouches.length==1&&this.getAttribute('disabled')!='disabled'){
vartouch=event.changedTouches[0];
endX=touch.pageX;
varoffset=endX-startX;
console.log(offset);
if(Math.abs(offset)>=50){
if(offset<0){//右滑
nextMethod();
}else{
prevMethod();
}
}
}
});
container.addEventListener('touchmove',function(){
event.preventDefault();
})
container.addEventListener('touchstart',function(event){
if(event.targetTouches.length==1&&this.getAttribute('disabled')!='disabled'){
vartouch=event.targetTouches[0];
startX=touch.pageX;
}
})
prev.addEventListener('click',function(){
if(this.getAttribute('disabled')=='disabled'){
returnfalse;
}
prevMethod();
});
next.addEventListener('click',function(){
if(this.getAttribute('disabled')=='disabled'){
returnfalse;
}
nextMethod();
});
for(vari=0;i<buttonsItem.length;i++){
buttonsItem[i].onclick=function(){
if(this.getAttribute('disabled')=='disabled'){
returnfalse;
}
vari=this.getAttribute('index');
varlength=Math.abs((i-index)*500);
vardirection='right';
if(length<0){
direction='left';
}
index=i;
document.getElementsByClassName('on')[0].setAttribute('class','');
buttonsItem[index].className='on';
animate(direction,1,length);
}
}
functionprevMethod(){
if(index==0){
index=4;
animate('right',40,2000);
}else{
index--;
animate('left',1,500);
}
document.getElementsByClassName('on')[0].setAttribute('class','');
//buttonsItem[index].setAttribute('class','on');
buttonsItem[index].className='on';
}
functionnextMethod(){
if(index==4){
index=0;
animate('left',40,2000);
}else{
index++;
animate('right',1,500);
}
document.getElementsByClassName('on')[0].setAttribute('class','');
buttonsItem[index].className='on';
}
functionanimate(direction,speed,length){
varend=length/speed;
varcount=0;
for(vari=0;i<end;i++){
setTimeout(function(){
count++;
varleft=list.offsetLeft;
if(direction=='right'){
left-=speed;
}else{
left+=speed;
}
list.style.left=left+'px';
if(count<end-1){
disabledButtons();
}else{
resumeButtons();
}
},speed*i);
}
}
functiondisabledButtons(){
for(vari=0;i<5;i++){
buttonsItem[i].setAttribute('disabled','disabled');
}
prev.setAttribute('disabled','disabled');
next.setAttribute('disabled','disabled');
container.setAttribute('disabled','disabled');
}
functionresumeButtons(){
for(vari=0;i<5;i++){
buttonsItem[i].removeAttribute('disabled');
}
prev.removeAttribute('disabled');
next.removeAttribute('disabled');
container.removeAttribute('disabled');
}
}
</script>
</body>
</html>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。