最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

JS div匀速移动动画与变速移动动画代码实例

来源:动视网 责编:小采 时间:2020-11-27 21:59:40
文档

JS div匀速移动动画与变速移动动画代码实例

JS div匀速移动动画与变速移动动画代码实例:1.匀速移动代码 <!DOCTYPE html> <html lang=en> <head> <meta charset=UTF-8> <title>title</title> <style> * { margin: 0; padding: 0; } div
推荐度:
导读JS div匀速移动动画与变速移动动画代码实例:1.匀速移动代码 <!DOCTYPE html> <html lang=en> <head> <meta charset=UTF-8> <title>title</title> <style> * { margin: 0; padding: 0; } div


1.匀速移动代码

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>title</title>
 <style>
 * {
 margin: 0;
 padding: 0;
 }
 
 div {
 margin-top: 20px;
 width: 200px;
 height: 100px;
 background-color: green;
 position: absolute;
 left: 0;
 top: 0;
 }
 </style>
</head>
<body>
<input type="button" value="移动到400px" id="btn1"/>
<input type="button" value="移动到800px" id="btn2"/>
<div id="dv">
 <script src="common.js"></script>
 <script>
 //点击按钮移动div
 
 my$("btn1").onclick = function () {
 animate(my$("dv"), 400);
 };
 my$("btn2").onclick = function () {
 animate(my$("dv"), 800);
 };
 
 //匀速动画
 function animate(element, target) {
 //清理定时器
 clearInterval(element.timeId);
 element.timeId = setInterval(function () {
 //获取元素的当前位置
 var current = element.offsetLeft;
 //移动的步数
 var step = 10;
 step = target > current ? step : -step;
 current += step;
 if (Math.abs(current - target) > Math.abs(step)) {
 element.style.left = current + "px";
 } else {
 clearInterval(element.timeId);
 element.style.left = target + "px";
 }
 }, 20);
 }
 </script>
</div>
</body>
</html>

2.变速移动代码

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>title</title>
 <style>
 * {
 margin: 0;
 padding: 0;
 }
 
 div {
 margin-top: 20px;
 width: 200px;
 height: 100px;
 background-color: green;
 position: absolute;
 left: 0;
 top: 0;
 }
 </style>
</head>
<body>
<input type="button" value="移动到400px" id="btn1"/>
<input type="button" value="移动到800px" id="btn2"/>
<div id="dv">
 <script src="common.js"></script>
 <script>
 //点击按钮移动div
 
 my$("btn1").onclick = function () {
 animate(my$("dv"), 400);
 };
 my$("btn2").onclick = function () {
 animate(my$("dv"), 800);
 };
 
 //变速动画
 function animate(element, target) {
 //清理定时器
 clearInterval(element.timeId);
 element.timeId = setInterval(function () {
 //获取元素的当前位置
 var current = element.offsetLeft;
 //移动的步数
 var step = (target-current)/10;
 step = step>0?Math.ceil(step):Math.floor(step);
 current += step;
 element.style.left = current + "px";
 if(current==target) {
 //清理定时器
 clearInterval(element.timeId);
 }
 
 }, 20);
 }
 </script>
</div>
</body>
</html>

common.js

/**
 * 获取指定标签对象
 * @param id 标签的id属性值
 * @returns {Element}根据id属性值返回指定标签对象
 */
function my$(id) {
 return document.getElementById(id);
}

以上所述是小编给大家介绍的JS div匀速移动动画与变速移动动画详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

文档

JS div匀速移动动画与变速移动动画代码实例

JS div匀速移动动画与变速移动动画代码实例:1.匀速移动代码 <!DOCTYPE html> <html lang=en> <head> <meta charset=UTF-8> <title>title</title> <style> * { margin: 0; padding: 0; } div
推荐度:
标签: 运动 移动 动画
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top