匀速运动之停止条件

***************************匀速运动 1****************************************

<!DOCTYPE html>

<html>

<head lang="en">

<meta charset="UTF-8">

<title></title>

<style type="text/css">

body{margin:0;padding:0;}

div{width:100px;height:100px;background:red;position: absolute;left:0;}

span{width:0;height:600px;position:fixed;left:600px;top:0;border-left:1px solid red;}

</style>

</head>

<body>

<div></div>

<span></span>

</body>

</html>

<script type="text/javascript">

var oDiv=document.getElementsByTagName("div")[0];

domove(oDiv,600);

var timer;

var Speed;

function domove(obj,target)

{

Speed=10;

obj.onclick=function(){

timer=setInterval(function(){

obj.style.left=obj.offsetLeft+Speed+"px";

if(obj.offsetLeft==target){clearInterval(timer);}

////再次点击的时候还是会继续运动的,这里的==是有问题的

},30)

}

}

</script>

***************************匀速运动 2****************************************

<!DOCTYPE html>

<html>

<head lang="en">

<meta charset="UTF-8">

<title></title>

<style type="text/css">

body{margin:0;padding:0;}

div{width:100px;height:100px;background:red;position: absolute;left:0;}

span{width:0;height:600px;position:fixed;left:600px;top:0;border-left:1px solid red;}

</style>

</head>

<body>

<input type="button" value="buttons" onclick="startMove()"/>

<div></div>

<span></span>

</body>

</html>

<script type="text/javascript">

var timer=null; //定时器需放在函数外面,避免每次调用都开启一个

function startMove()

{

var oDiv=document.getElementsByTagName("div")[0];

clearInterval(timer);//移出所有的定时器,解决了每次点击都开启一个定时器的问题

timer=setInterval(function(){

var Speed=10;

if(oDiv.offsetLeft>=600){clearInterval(timer);} //已经到达,匀速运动if里面的条件必须为>=

else{oDiv.style.left=oDiv.offsetLeft+Speed+"px";}//未到达

},30)

}

</script>

***************************匀速运动 3****************************************

<!DOCTYPE html>

<html>

<head lang="en">

<meta charset="UTF-8">

<title></title>

<style type="text/css">

body{margin:0;padding:0;}

div{width:100px;height:100px;background:red;position: absolute;left:0;}

span{width:0;height:600px;position:fixed;left:600px;top:0;border-left:1px solid red;}

</style>

</head>

<body>

<input type="button" value="buttons" onclick="startMove(600)"/>

<div></div>

<span></span>

</body>

</html>

<script type="text/javascript">

var timer=null; //定时器需放在函数外面,避免每次调用都开启一个

function startMove(itarget)

{

var oDiv=document.getElementsByTagName("div")[0];

clearInterval(timer);//移出所有的定时器,解决了每次点击都开启一个定时器的问题

timer=setInterval(function(){

var Speed=10;

if((itarget-oDiv.offsetLeft)<Speed)//如果不足够再次运行一次定时器的距离的时候 就停止,当然>=也是一个停止条件,常见的有两种停止条件

{

oDiv.offsetLeft=itarget;

clearInterval(timer);

}

else{oDiv.style.left=oDiv.offsetLeft+Speed+"px";}//未到达

},30)

}

</script>

时间: 2024-08-05 12:31:07

匀速运动之停止条件的相关文章

Javascript 匀速运动停止条件——逐行分析代码,让你轻松了运动的原理

原文:Javascript 匀速运动停止条件--逐行分析代码,让你轻松了运动的原理 我们先来看下之前的匀速运动的代码,修改了速度speed后会出现怎么样的一个bug.这里加了两个标杆用于测试 <style type="text/css"> #div1 { width: 100px; height: 100px; position: absolute; background: red; top: 50px; left: 600px; } #div2 { width: 1px;

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

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

7.9随笔

1.三次握手原则 Http协议三次握手过程 TCP(Transmission Control Protocol) 传输控制协议 TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接: 位码即tcp标志位,有6种标示:SYN(synchronous建立联机) ACK(acknowledgement 确认) PSH(push传送) FIN(finish结束) RST(reset重置) URG(urgent紧急) Sequence number(顺序号码) Acknow

javascript运动详解

javascript运动详解 本文给大家详细介绍下如何使用javascript来实现运动效果,总结的十分全面,附上各种效果的详细示例和演示图,有需要的小伙伴可以参考下. 物体运动原理:通过改变物体的位置,而发生移动变化. 方法: 1.运动的物体使用绝对定位 2.通过改变定位物体的属性(left.right.top.bottom)值来使物体移动.例如向右或左移动可以使用offsetLeft(offsetRight)来控制左右移动. 步骤: 1.开始运动前,先清除已有定时器 (因为:是连续点击按钮,

1、三次握手原则 2、什么是正则表达式以及作用 3、匹配身份证和电话号码的正则表达式 4、什么是运动

1.三次握手原则 Http协议三次握手过程 TCP(Transmission Control Protocol) 传输控制协议 TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接: 位码即tcp标志位,有6种标示:SYN(synchronous建立联机) ACK(acknowledgement 确认) PSH(push传送) FIN(finish结束) RST(reset重置) URG(urgent紧急) Sequence number(顺序号码) Acknow

《浅谈JavaScript系列》系列技术文章整理收藏

<浅谈JavaScript系列>系列技术文章整理收藏 1浅谈JavaScript中面向对象技术的模拟 2浅谈javascript函数劫持[转自xfocus]第1/3页 3浅谈javascript 面向对象编程 4老鱼 浅谈javascript面向对象编程 5浅谈javascript的数据类型检测 6浅谈Javascript嵌套函数及闭包 7根据一段代码浅谈Javascript闭包 8浅谈JavaScript编程语言的编码规范 9浅谈Javascript面向对象编程 10浅谈JavaScript

细说JavaScript数据类型及转换

细说JavaScript数据类型及转换 JavaScript数据类型 1.Boolean(布尔) 布尔:(值类型)var b1=true;//布尔类型 2.Number(数字) 数值:(值类型)var n1=3.1415926;//数值类型 n1.toFixed(3);//四舍五入保留3位小数. 3.String(字符串) var s1='hello';//字符串类型 字符串:(值类型,字符串不可变特性) 4.Undefined(未定义) undefined属于值类型,与其他值计算得到的结果不是

解析JS运动

解析JS运动 物体运动原理:通过改变物体的位置,而发生移动变化.方法:      1.运动的物体使用绝对定位       2.通过改变定位物体的属性(left.right.top.bottom)值来使物体移动.例如向右或左移动可以使用offsetLeft(offsetRight)来控制左右移动.步骤:    1.开始运动前,先清除已有定时器 (因为:是连续点击按钮,物体会运动越来越快,造成运动混乱)    2.开启定时器,计算速度    3.把运动和停止隔开(if/else),判断停止条件,执行

第八节 JS运动基础

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