利用JS定时器实现元素移动
短信预约 -IT技能 免费直播动态提醒
利用JS定时器做一个元素做一个有移动效果的方法,实现思路:首先声明一个变量存放元素距离左侧的边距,然后我们在声明一个变量存放每次元素需要移动的距离,然后再给这个方法一个完成时间就可以了。需要注意的是获取到的值如果不是数值型的数据需要装换,否则不能进行判断。再判断一下该元素移动到某个位置之后,步长给它一个负值,该元素就会往回跑了。
大家还可以想一想元素移动到左右侧的时候如何实现转身效果。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
*{margin: 0;padding: 0;}
body{position: relative;}
#box{
width: 120px;height: 120px;background: green;
position: absolute;top: 100px;
}
</style>
</head>
<body>
<button type="button" id="Button">点我移动</button>
<div id="box" style="left: 0px;"></div>
<script type="text/javascript">
var Button = document.getElementById("Button");
var box = document.getElementById("box");
// 每次移动多少像素,step表示步长
var step = 5;
Button.onclick = function(){
var timer = setInterval(function(){
//获取box的left值,转成整数,一定要转化为数值行在做运算,
// parseInt表示将获取到的字符串转化为字符型
var o_left = parseInt(box.style.left);
//想要元素走的更快可以改变加大每次移动的距离或者是减少完成时间也可以
//但是减少完成时间这样的效果要好一点
var n_left = o_left+step; //每次向右移动10px
box.style.left = n_left+"px";
if ( n_left>500) { //如果移动的距离大于400px就往回跑
step = -5;
}else if(n_left==0){
step = 5;
};
},100);
};
</script>
</body>
</html>
运行结果如下:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341