(36)JS运动之使物体向右运动

基本思路:样式要是绝对定位,不然的话根本走不起来,当开启一个定时器的时候,必须先清除定时器,这是为了防止鼠标连续点击按钮而开启多个定时器,导致物体的速度加快等原因,其次要控制好物体的运动和停止,用if-else控制逻辑控制。

<!DOCTYPE HTML>
<!--

-->
<html>
<head>
<meta charset="utf-8">
<title></title>
<style>
#div1{
	width:200px;
	height:200px;
	background:red;
	position:absolute;//不加绝对定位,就跑不起来
	top:50px;
	left:0px;
}

</style>

<script>
var timer=null;
function startMove(){
	var oDiv=document.getElementById('div1');	

	clearInterval(timer);//保证只有一个定时器在工作,不会因为连续点击多次按钮而开启多个定时器,从而导致速度变快
	timer=setInterval(function (){
	var speed=1;

	if(oDiv.offsetLeft>=300)//大于300时让物体停在那里,不一直运动下去
	{
		clearInterval(timer);
	}
	else
	{
		oDiv.style.left=oDiv.offsetLeft+speed+'px';
	}

	},30)

}
</script>
</head>
<body>
	<input id="btn1" type="button" value="开始运动" onclick="startMove()"/>
	<div id="div1"></div>

</body>
</html>

效果图:

(36)JS运动之使物体向右运动

时间: 2024-10-27 06:52:23

(36)JS运动之使物体向右运动的相关文章

(42)JS运动之多物体框架--多个div变宽

如果只为div添加一个定时器的话,在多个div变宽的时候会发生问题,但是如果为每个div添加一个定时器,那么就可以实现多个物体变宽.注意:在多物体运动的情况下,所有东西不能共用.offsetXXX会跟border冲突导致不能得到想要的结果,在这里可以用getStyle()函数代替. function getStyle(obj, name) { if(obj.currentStyle) { return obj.currentStyle[name]; } else { return getComp

JS运动-放大缩小物体(从中心)

先来看下效果: 要点: 1. 将css的float定位,转换成用js的绝对定位 2. 从中心放大缩小物体 主要步骤: 1. 先通过css的float定位,ul宽度设置成li宽的倍数(例子中li的宽是122,没行显示3 个li,所以ul宽设置        成366) 2.  利用js 获取并且设置他们初始的left 和top值 3.  ul 的position:relative相对定位,接着用js循环设置li的position:absolute绝对定位 4.  加入鼠标移入移出事件,并通过运动框

JavaScript学习总结【11】、JS运动

动画效果在网站中是一种非常常见的交互式体验效果,比如侧边栏分享.图片淡入淡出,我们把这种动画效果就叫做运动,也就是让物体动起来.如果想让一个物体动起来,无非就是改变它的速度,也就是改变属性值,比如 left.right.width.height.opacity ,那么既然是运动,就可以分为很多种,如匀速运动.缓冲运动.多物体运动.任意值运动.链式运动和同时运动.我们从最简单的动画开始,如何让单个物体运动,逐步深入多物体运动.多动画同时运动到实现完美运动框架的封装,在这个过程中,每一个运动都封装为

第八节 JS运动基础

运动基础 让Div运动起来 速度--物体运动的快慢 运动中的Bug 不会停止 速度取某些值会无法停止 到达位置后再点击还会运动 重复点击速度加快 匀速运动(速度不变) 运动框架及应用: 运动框架: 在开始运动时,关闭已有定时器 把运动和停止隔开(if/else) <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>JS运

JS运动从入门到兴奋1

hello,我是沐晴,一个充满了才华,却靠了照骗走江湖的前端妹子.在这个充满PS的年代,这你们都信,哈哈,废话不多说,今天要分享的是关注JS运动的知识.楼主一直认为,不管学习什么,核心思想才是王道,掌握了思想,不管需求怎么改变,我们都能把它玩弄于股掌之中...下面我们就由浅入深走进运动的世界吧. 首先来看最基础的运动:单个物体向右匀速运动到某一点停止      例子:一个按钮,一个div,点击按钮,让div向右运动到某一个位置暂停 // 原理: 1 获取物体当前的位置 oDiv.offsetle

JS运动1 (转)

JS运动从入门到兴奋1 http://www.cnblogs.com/moqing/p/5666476.html hello,我是沐晴,一个充满了才华,却靠了照骗走江湖的前端妹子.在这个充满PS的年代,这你们都信,哈哈,废话不多说,今天要分享的是关注JS运动 的知识.楼主一直认为,不管学习什么,核心思想才是王道,掌握了思想,不管需求怎么改变,我们都能把它玩弄于股掌之中...下面我们就进入运动的世界吧. 首先来看最基础的运动:单个物体向右匀速运动到某一点停止      例子:一个按钮,一个div,

JS运动从入门到精髓!哈哈

首先来看最基础的运动:单个物体向右匀速运动到某一点停止      例子:一个按钮,一个div,点击按钮,让div向右运动到某一个位置暂停 // 原理: 1 获取物体当前的位置 oDiv.offsetleft // 2 利用定时器,每隔一定的时间,让物体位置增加相同的距离(10px). // 3 判断物体是否移动到指定位置(500px),如果到达,就清除定时器 var oBtn = document.getElementById('btn'); var oDiv = document.getEle

JS运动-自由落体运动

模拟物理中的自由落体运动:废话不多说,先看效果!! 图片效果不太好,有些卡,可以把代码考出来自己运行看下效果!! 基本过程:鼠标可拖拽div,当鼠标抬起的时候,div会自由下落,然后弹起下落,直到速度为0运动停止,下落和弹起直至停止的过程是模拟 自由落体运动 完成测试代码: <div id="box"></div> <style> #box{ position: absolute;left: 0;top: 0; width: 100px;height

js运动框架逐渐递进版

运动,其实就是在一段时间内改变left.right.width.height.opactiy的值,到达目的地之后停止. 现在按照以下步骤来进行我们的运动框架的封装: 匀速运动. 缓冲运动. 多物体运动. 任意值变化. 链式运动. 同时运动 (第一部分):匀速运动 运动基础 思考:如何让div动起来?如下: 设置元素为绝对定位,只有绝对定位后,left,top等值才生效. 定时器的使用(动态改变值),这里使用setInterval()每隔指定的时间执行代码. 计时器setInterval(函数,交