<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<style>
* {
margin: 0;
padding: 0;
}
#box {
width: 200px;
height: 200px;
background-color: pink;
position: absolute;
}
</style>
<body>
<button id="left">往左走</button>
<button id="right">往右走</button>
<div id="box"></div>
<script>
window.addEventListener("load", function () {
var leftMove = document.getElementById("left");
var rightMove = document.getElementById("right");
var box = document.getElementById("box");
// 往右走
rightMove.addEventListener("click", function () {
buffer(box, 800);
});
// 往左走
leftMove.addEventListener("click", function () {
buffer(box, 0);
});
});
// 缓动动画函数
function buffer(eleObj, target) {
clearInterval(eleObj.timeId);
var step = 0;
eleObj.timeId = setInterval(function () {
// 步长
step = (target - eleObj.offsetLeft) * 0.1;
step = target > eleObj.offsetLeft ? Math.ceil(step) : Math.floor(step);
eleObj.style.left = eleObj.offsetLeft + step + "px";
eleObj.innerText = eleObj.offsetLeft;
// 停止
if (eleObj.offsetLeft == target) {
clearInterval(eleObj.timeId);
}
}, 20);
}
</script>
</body>
</html>
js学习案例:基本的缓动动画函数
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。