运动(二)

运动终止条件:

  匀速运动:距离足够近,常常用到Math.abs();

  缓冲运动,两点重合,常常用到 Math.ceil(); Math.floor();

匀速运动:

<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>匀速运动</title>
    <style>
        div{width:100px;height:100px;background-color:green;position:absolute;left:0px;top:0;}
        input{margin-top:120px;}
        span{height:300px;width:1px;background:black;display:block;position:absolute;left:300px;top:0;}
    </style>
</head>
<body>
<div id="div1"></div>
<input type="button" value="开始运动" onclick="startMove(300)">
<span></span>
</body>
</html>
<script>
    var time = null;
    function startMove(iTarget) {
        var oDiv = document.getElementById("div1");
        clearInterval(time);
        time = setInterval(function () {
            var spend = 0;
            if(oDiv.offsetLeft<iTarget){
                spend = 7;
            }else{
                spend = -7;
            }
            if(Math.abs(oDiv.offsetLeft-iTarget)<7){//是否到达终点
                clearInterval(time);//到达终点以后
                oDiv.style.left = iTarget+‘px‘;
            }else{
                oDiv.style.left = oDiv.offsetLeft+spend+"px";//到达之前
            }
        },30);

    }
</script>

缓冲运动:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>div移动</title>
    <style>
        div{width:100px;height:100px;background-color:green;position:absolute;left:500px;top:0;}
        input{margin-top:120px;}
        textarea{width:100%;margin-top:150px;}
        span{height:300px;width:1px;background:black;display:block;position:absolute;left:300px;top:0;}
    </style>
</head>
<body>
<div id="div1"></div>
<input type="button" value="开始运动" onclick="startMove(300)">
<textarea name="" id="txt1" cols="30" rows="10"></textarea>
<span></span>
</body>
</html>
<script type="text/javascript">
    var time = null;
    function startMove(iTarget) {
        var oDiv = document.getElementById("div1");
        var oTxt = document.getElementById("txt1");
        clearInterval(time);
        time = setInterval(function () {
            var spend = (iTarget-oDiv.offsetLeft)/8;//这里必须取整
//            if(spend>0){//当值为正数的时候,向上取整
//                spend = Math.ceil(spend);
//            }else{//当值为正数的时候,向上取整
//                spend = Math.floor(spend);
//            }
            //可以简写成:问号前面是条件,后面是结果;
            spend = spend>0?Math.ceil(spend):Math.floor(spend);

            if(oDiv.offsetLeft == iTarget){//是否到达终点
                clearInterval(time);//到达终点以后
            }else{
                oDiv.style.left = oDiv.offsetLeft+spend+"px";//到达之前
            }
            oTxt.value +=spend+"\n";
            document.title = oDiv.offsetLeft+spend;
        },30);

    }
    //    缓冲运动的问题
    //小数问题,解决方案
    //Math.ceil()当值为正数的时候,向上取整
    //    Math.floor()当值为负数的时候,向下取整
</script>
时间: 2024-10-13 15:21:50

运动(二)的相关文章

JS动画之速度动画和透明度变化

一.运动框架实现思路:1.速度(改变值left.right.width.height.opacity)2.缓冲运动3.多物体运动4.任意值变动5.链式运动6.同时运动 二.匀速运动:1.设置定时器,每隔一段时间更改位置,达到匀速运动2.设置定时器前需清除定时器,以防多次触发重复生成多个定时器3.当运动位置达到目标值时,可通过清除定时器停止运动4.当定义函数多处相同时,可封装为一个函数,用不同参数调用,尽量少传递相同的参数        window.onload = function(){  

物理运动学公式汇总

一. 直线运动,自由落体运动二. 曲线运动.万有引力三. 力(常见的力.力的合成与分解)四. 动力学(运动和力)五. 振动和波(机械振动与机械振动的传播)六.冲量与动量(物体的受力与动量的变化) 一.质点的运动(1)------直线运动 1)匀变速直线运动 1.平均速度V=s/t(定义式) 2.有用推论Vt*Vt-Vo*Vo=2as 3.中间时刻速度Vt/2=V平=(Vt+Vo)/2 4.末速度Vt=Vo+at 5.中间位置速度Vs/2=[(Vo*Vo+Vt*Vt)/2]1/2 6.位移s=V平

13年以来历史学系若干考试题目汇编

资料主要基于人人网用户543447982和人人网用户471370566的贡献 [中国通史(一)] 13年秋 1.名词解释 层累造成的中国古史: 大宗小宗:<法经>: 徐州相王: 罢兵赐复诏: 亲总吏职: 昆阳之战: 清流: 高平陵之变: 王与马共天下 2.论述题 试论春秋霸政历史成因.影响和意义. 论汉武帝加强中央集权的政治文化措施. 运用十六国北朝历史的论证,说明马克思在<不列颠在印度统治的未来结果>中提出的著名论断:"野蛮的民族总是被他们所征服的民族的更高级文化所征服

js动画学习(一)

一.运动框架实现思路 1.匀速运动(属性值匀速变化)(改变 left, right, width, height, opacity 等): 2.缓冲运动(属性值的变化速度与当前值与目标值的差成正比): 3.多物体运动: 4.任意属性值的变化(用封装函数): 5.链式运动(同一物体完成一系列的运动): 6.多物体同时运动 ==================================================== 二.简单运动之匀速运动 1 //鼠标移到元素上元素右移,鼠标离开元素回去

【前端学习笔记】JQuery事件细节、JQ进阶常用方法

事件细节----------------------- ev直接使用,不需要兼容操作 ev.pageX(Y) 鼠标的坐标(相对于文档) : ev.clientX(相对于窗口) ev.which(能监控鼠标键值) : ev.keyCode ev.preventDefault(); //阻止默认事件 ev.stopPropagation(); //阻止冒泡 事件函数结尾return false;既能阻止冒泡又能阻止默认事件 one() $('div').one('click',function(){

在centos上安装WordPress

一.安装Apache服务 1.直接在命令行中输入以下命令即可,顺便安装编译组件: yum install -y httpdyum install -y httpd-devel 2.启动Apache服务和设置Apache自启: 1 systemctl start httpd 2 systemctl enable httpd 3.添加一个测试页面,测试Apache服务是否正常运行(可省略): 1 echo "This is my first web" > /var/www/html/

《自动化技术中的进给电气运动》及学科学习笔记二

<自动化技术中的进给电气运动> 阅读内容:第1.3节 知识要点: 本节主要以不可调节电气传动系统为例,介绍了系统在时间域的静态和动态特性以及电气系统对于简单信号的响应. 1.采用微分方程分析系统 对于只有一个输入和输出的线性系统都可表示成如下的微分方程形式.其中u为输入,v为输出,且对于实际系统有m≤n. 以不可调电气传动系统为例,列出系统的机械和电气微分方程. (1)JGes=JM+JL (2)uA-eM=RAiA+LAdiA/dt (3)eM=cMωM (4)MM=ML+MB=ML+JGe

NewtonPrincipia --- 公理或运动的定律 --- 系理二

NewtonPrincipia --- 公理或运动的定律 --- 系理二 自然哲学的数学原理>公理或运动的定律>系理II 平行四边形ABCD,那么:直接的力AD由任意的力AB和BD合成,直接的力AD可以任意分解为任意倾斜的力AB和BD 在垂直的重力中从一个轮子的中心O伸出不等的半径OM.ON由细线MA,NP支持着重量A和P,过中心O引垂直于细线的直线KOL交细线于K和L且以中心O和OK.OL中的较大者OL划一圈交细线MA与D又做直线OD,AC平行与它,DC平行于它 证明:悬挂的重量之比是悬挂细

javascript运动框架(二)

紧接着上面写的... 给div加一个边框,border:1px solid black window.onload = function(){      var div = document.getElementById('div1'); div.onclick = function(){          setInterval(function(){               div.style.width = div.offsetWidth-1+'px'