这篇文章主要介绍了纯JS实现轮播图的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
如下代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>图片轮播的效果</title>
<style type="text/css">
* {
margin: 0;
padding: 0;
text-decoration: none;
}
body {
padding: 20px;
}
#container {
position: relative;
width: 600px;
height: 400px;
border: 3px solid #333;
overflow: hidden;
}
#list {
position: absolute;
z-index: 1;
width: 4200px;
height: 400px;
}
#list img {
float: left;
width: 600px;
height: 400px;
}
#buttons {
position: absolute;
left: 250px;
bottom: 20px;
z-index: 2;
height: 10px;
width: 100px;
}
#buttons span {
float: left;
margin-right: 5px;
width: 10px;
height: 10px;
border: 1px solid #fff;
border-radius: 50%;
background: #333;
cursor: pointer;
}
#buttons .on {
background: orangered;
}
.arrow {
position: absolute;
top: 180px;
z-index: 2;
display: none;
width: 40px;
height: 40px;
font-size: 36px;
font-weight: bold;
line-height: 39px;
text-align: center;
color: #fff;
background-color: RGBA(0, 0, 0, .3);
cursor: pointer;
}
.arrow:hover {
background-color: RGBA(0, 0, 0, .7);
}
#container:hover .arrow {
display: block;
}
#prev {
left: 20px;
}
#next {
right: 20px;
}
</style>
</head>
<body>
<div id="container">
<div id="list" >
<img src="/file/upload/202210/19/4qbzfml0u3v.jpg" alt="无缝滚动" />
<img src="/file/upload/202210/19/4qbzfml0u3v.jpg" alt="无缝滚动" />
<img src="/file/upload/202210/19/tev5hfuh3wb.jpg" alt="无缝滚动" />
<img src="/file/upload/202210/19/2lvbr4aghy0.jpg" alt="无缝滚动" />
<img src="/file/upload/202210/19/xckeijrfgpo.jpg" alt="无缝滚动" />
<img src="/file/upload/202210/19/l1v5piudjnd.jpg" alt="无缝滚动" />
<img src="/file/upload/202210/19/l1v5piudjnd.jpg" alt="无缝滚动" />
</div>
<div id="buttons">
<span index="1" class="on"></span>
<span index="2"></span>
<span index="3"></span>
<span index="4"></span>
<span index="5"></span>
</div>
<a href="javascript:;" rel="external nofollow" rel="external nofollow" id="prev" class="arrow"><</a>
<a href="javascript:;" rel="external nofollow" rel="external nofollow" id="next" class="arrow">></a>
</div>
<script type="text/javascript">
window.onload=function(){
var container = document.getElementById("container");
var list = document.getElementById("list");
var buttons = document.getElementById("buttons").getElementsByTagName('span');
var prev = document.getElementById("prev");
var next = document.getElementById("next");
var index = 1;
function animate(offset){
var newLeft = parseInt(list.style.left) + offset;
list.style.left = newLeft + 'px';
if(newLeft<-3000){
list.style.left= -600 +'px';
}
if(newLeft>-600){
list.style.left = -3000 + 'px';
}
}
function buttonsshow(){
for(var i =0; i<buttons.length;i++){
if(buttons[i].className == 'on'){
buttons[i].className='';
}
}
buttons[index-1].className='on';
}
prev.onclick = function(){
index-=1;
if(index<1)
{
index=5;
}
buttonsshow();
animate(600);
};
next.onclick = function(){
index+=1;
if(index>5){
index=1;
}
buttonsshow();
animate(-600);
};
//自动播放
var timer;
function play(){
timer= setInterval(function(){
next.onclick();
},1000)
}
play();
function stop(){
clearInterval(timer);
}
container.onmouseover=stop;
container.onmouseout=play;
for(var i=0; i<buttons.length; i++){
( function(i){
buttons[i].onclick=function(){
var clickindex= parseInt(this.getAttribute('index'));
var offset = 600*(index-clickindex);
animate(offset);
index = clickindex;
buttonsshow();
}
})(i);
}
}
</script>
</body>
</html>
感谢你能够认真阅读完这篇文章,希望小编分享的“纯JS实现轮播图的示例分析”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网行业资讯频道,更多相关知识等着你来学习!