<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>海贼王悬赏</title>
<style>
*{
margin: 0;
padding: 0;
}
ul{
margin:25px auto;
width: 900px;
height: 600px;
position: relative;
overflow: hidden;
border: 1px solid black;
display: block;
list-style: none;
}
ul li{
padding: 0;
position: absolute;
width: 900px;
height: 600px;
}
</style>
</head>
<body>
<div id="div">
<ul id="ul">
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
</div>
<script src="hd.js"></script>
<script>
var lis = document.querySelectorAll("li")
var div = document.querySelector("#div")
for(var i = 0;i<lis.length;i++){
lis[i].index = i
lis[i].style.backgroundImage = "url(images/"+(i+1)+".jpg)"
lis[i].style.left = 100*i+"px"
lis[i].onmouseover = function () {
for(var i =0;i<lis.length;i++){
if(i<=this.index){
move(lis[i],(i*30),10)
}else if(i>this.index){
move(lis[i],(i*30+630),10)
}
}
}
}
div.onmouseout = function () {
for(var i = 0;i<lis.length;i++){
move(lis[i],100*i,10)
}
}
</script>
</body>
</html>
function move(element,target,num) {
clearInterval(element.time)
element.time = setInterval( function () {
var current = element.offsetLeft
var step = (target-current)/num;
step =step>0 ? Math.ceil(step) :Math.floor(step)
current +=step
element.style.left = current+"px"
if(current==target){
clearInterval(element.time)
}
},30)
}