案例介绍:
这个案例主要是我们点击盒子里的任意一个位置,相对于当前点击位置使Y轴为零向点击的位置做缓冲运动,到达点击位置后炸开又以当前位置随机生成小圆点向四周扩散到达位置后消失。
效果展示:
代码实现:
1.先使用html和css将基本架构写出来
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
* {
margin: 0;
padding: 0;
}
.box {
width: 900px;
height: 600px;
background: black;
border: 10px solid #ee11ff;
margin: 50px auto;
position: relative;
}
.smallBox {
width: 10px;
height: 10px;
background-color: aqua;
position: absolute;
left: 0;
bottom: 0;
}
</style>
</head>
<body>
<div class="box">
<!-- <div class="smallBox"></div> -->
</div>
</body>
</html>
效果:
css可以根据自己的的喜好来设置
2.封装我们需要使用到的方法
1.缓冲运动
/*
封装缓冲运动
@params {Object} ele 表示运动的元素
@params {Object} options 表示需要改变的属性和目标组成的对象
@params {Function} callback 表示回调函数
*/
function animateHc(ele, options, callback) {
for (let key in options) {
// 清除定时器
clearInterval(ele[key])
// 在元素本身上面定义属性 接收定时器
ele[key] = setInterval(() => {
let beigin = parseInt(getSt