<div class="outer">
<ul class="imgList">
<li><img src="images/service_pic1.jpg"/></li>
<li><img src="images/service_pic2.jpg"/></li>
<li><img src="images/service_pic3.jpg"/></li>
<li><img src="images/service_pic4.jpg"/></li>
<li><img src="images/service_pic1.jpg"/></li>
</ul>
<div class="navDiv">
<a href="javascript: ;"></a>
<a href="javascript: ;"></a>
<a href="javascript: ;"></a>
<a href="javascript: ;"></a>
</div>
</div>
<style>
*{
margin: 0;
padding: 0;
}
.outer{
margin: 0 auto;
width: 550px;
height: 350px;
position: relative;
margin-top: 300px;
overflow: hidden;
}
.imgList{
list-style: none;
position: absolute;
top: 0;
}
.imgList li{
float: left;
}
.navDiv{
position: absolute;
bottom: 20px;
}
.navDiv a{
float: left;
width: 15px;
height: 15px;
border-radius: 50%;
background-color: aquamarine;
opacity: 0.3;
margin: 0 5px;
}
.navDiv a:hover{
background-color: cadetblue;
}
</style>
<script type="text/javascript">
window.onload = function(){
function move(obj,attr,target,speed,callback){
clearInterval(obj.timer);
var current = parseInt(getStyle(obj,attr));
if(current > target){
speed = - speed;
}
obj.timer = setInterval(function(){
var oldValue = parseInt(getStyle(obj,attr));
var newValue = oldValue + speed;
if((speed < 0 && newValue < target) || (speed > 0 && newValue > target)){
newValue = target;
}
obj.style[attr] = newValue + "px";
if(newValue == target){
clearInterval(obj.timer);
callback && callback();
}
},30);
};
function getStyle(obj,name){
if(window.getComputedStyle){
return getComputedStyle(obj,null)[name];
}else{
return obj.currentStyle[name];
};
}
var imgList = document.getElementsByClassName("imgList")[0];
var imgArr = document.getElementsByTagName("img");
imgList.style.width = 550 * imgArr.length + "px";
var navDiv = document.getElementsByClassName("navDiv")[0];
var outer = document.getElementsByClassName("outer")[0];
navDiv.style.left = (outer.offsetWidth - navDiv.offsetWidth)/2 + "px";
var index = 0;
var allA = document.getElementsByTagName("a");
allA[index].style.background = "cadetblue";
for(var i = 0 ; i < allA.length ; i++){
allA[i].num = i;
allA[i].onclick = function(){
clearInterval(timer);
index = this.num;
setA();
move(imgList,"left",-550 * index,30,function(){
autoChange();
});
};
}
autoChange();
function setA(){
if(index >= imgArr.length - 1){
index = 0;
imgList.style.left = 0;
};
for(var i = 0;i < allA.length;i++){
allA[i].style.backgroundColor = "";
};
allA[index].style.backgroundColor = "cadetblue";
};
var timer;
function autoChange(){
timer = setInterval(function(){
index ++;
index %= imgArr.length;
move(imgList,"left",-550 * index,30,function(){
setA();
});
},2000)
}
}
</script>