HTML结构
// 动画组总共有18块碎片 所以就是18个li
<ul>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
Css样式
<style>
* {
margin: 0;
padding: 0;
border: 0;
}
li {
list-style-type: none;
}
ul {
width: 600px;
height: 300px;
border: 1px solid #000;
margin: 100px auto;
}
ul li {
width: 100px;
height: 100px;
float: left;
position: relative;
background: url("images/pic.jpg");
}
</style>
Js代码
<script src="js/MyFunc.js"></script>
<script>
window.onload = function () {
var allLis = document.getElementsByTagName('li');
// 1. 设置图片
for (var i = 0; i < allLis.length; i++) {
// 1.1 求出行和列
allLis[i].cols = i % 6;
allLis[i].rows = parseInt(i / 6);
/*allLis[i].innerHTML = '('+allLis[i].rows+', '+allLis[i].cols+')';*/
// 1.2 设置背景坐标
allLis[i].style.backgroundPosition = allLis[i].cols * -100 + 'px ' + allLis[i].rows * -100 + 'px';
}
// 2. 开启动画
var as = {
a0: function () {
for (var i = 0; i < allLis.length; i++) {
// 2.1 移动位置
allLis[i].style.left = -600 + 'px';
allLis[i].style.top = -300 + 'px';
allLis[i].style.opacity = 0;
// 2.2 归位
(function (index) {
setTimeout(function () {
buffer(allLis[index], {left: 0, top: 0, opacity: 1})
}, index * 100);
})(i);
}
},
a1: function () {
for (var i = 0; i < allLis.length; i++) {
var dis = 300;
// 2.1 移动位置
allLis[i].style.top = (dis *= -1) + 'px';
allLis[i].style.opacity = 0;
// 2.2 归位
(function (index) {
setTimeout(function () {
buffer(allLis[index], {top: 0, opacity: 1})
}, index * 100);
})(i);
}
},
a2: function () {
for (var i = 0; i < allLis.length; i++) {
var dis = 300;
// 2.1 移动位置
allLis[i].style.top = dis + 'px';
allLis[i].style.opacity = 0;
// 2.2 归位
(function (index) {
setTimeout(function () {
buffer(allLis[index], {top: 0, opacity: 1})
}, allLis[index].cols * 100);
})(i);
}
},
a3: function () {
for (var i = 0; i < allLis.length; i++) {
var dis = 300;
// 2.1 移动位置
allLis[i].style.top = dis + 'px';
allLis[i].style.opacity = 0;
// 2.2 归位
(function (index) {
setTimeout(function () {
buffer(allLis[index], {top: 0, opacity: 1})
}, index * 100);
})(i);
}
},
a4: function () {
for (var i = 0; i < allLis.length; i++) {
var dis = 600;
// 2.1 移动位置
allLis[i].style.left = dis + 'px';
allLis[i].style.opacity = 0;
// 2.2 归位
(function (index) {
setTimeout(function () {
buffer(allLis[index], {left: 0, opacity: 1})
}, allLis[index].cols * 100);
})(i);
}
},
a5: function () {
for (var i = 0; i < allLis.length; i++) {
var dis = 600;
// 2.1 移动位置
allLis[i].style.left = dis + 'px';
allLis[i].style.opacity = 0;
// 2.2 归位
(function (index) {
setTimeout(function () {
buffer(allLis[index], {left: 0, opacity: 1})
}, index * 100);
})(i);
}
}
};
as.a0();
var num = 0;
setInterval(function () {
num++;
num %= 6;
as['a' + num]();
}, 4000);
}
</script>
特效展示
- 此动画并不完整 会有点bug 但是足够可以帮助小白理解Js动画