JS-运动基础(一)

<title>无标题文档</title>
<style>
#div1{width:200px;height:200px; background:red; position:absolute; left:0px; top:50px;}
</style>
<script>
var timer=null;
function startMove()
{
    var oDiv=document.getElementById(‘div1‘);
    clearInterval(timer);   //为避免同时开启多个定时器
    timer=setInterval(function (){
                                var speed=10;
                                if(oDiv.offsetLeft>300)
                                {
                                    clearInterval(timer);
                                }
                                else   //if...else避免在到达终点位置后按开始按钮再次执行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>

运动框架及应用

运动框架

1.在开始运动时,关闭已有定时器

2.把运动和停止隔开(if/else)

运动框架实例分享

1.”分享到“侧边栏

通过目标点,计算速度值

<title>无标题文档</title>
<style>
#div1{width:150px; height:200px; background:green; position:absolute; left:-150px;}
#div1 span{position:absolute; width:20px; height:60px; line-height:20px; background:blue; right:-20px;top:70px;}
</style>
<script>
window.onload=function ()
{
    var oDiv=document.getElementById(‘div1‘);
    oDiv.onmouseover=function ()
    {
        startMove();
    }
    oDiv.onmouseout=function ()
    {
        startMove2();
    }
};
var timer=null;

function startMove()
{
    var oDiv=document.getElementById(‘div1‘);

    clearInterval(timer);
    timer=setInterval(function (){
                                if(oDiv.offsetLeft==0)
                                {
                                    clearInterval(timer);
                                }
                                else
                                {
                                    oDiv.style.left=oDiv.offsetLeft+10+‘px‘;
                                }
                    },30);
}
function startMove2()
{
    var oDiv=document.getElementById(‘div1‘);

    clearInterval(timer);
    timer=setInterval(function (){
                                if(oDiv.offsetLeft==-150)
                                {
                                    clearInterval(timer);
                                }
                                else
                                {
                                    oDiv.style.left=oDiv.offsetLeft-10+‘px‘;
                                }
                    },30);
}
</script>
</head>

<body>
<div id="div1">
     <span>分享到</span>
</div>
</body>

改进1

window.onload=function ()
{
    var oDiv=document.getElementById(‘div1‘);
    oDiv.onmouseover=function ()
    {
        startMove(10,0);
    }
    oDiv.onmouseout=function ()
    {
        startMove(-10,-150);
    }
};
var timer=null;

function startMove(speed,iTarget)
{
    var oDiv=document.getElementById(‘div1‘);

    clearInterval(timer);
    timer=setInterval(function (){
                                if(oDiv.offsetLeft==iTarget)
                                {
                                    clearInterval(timer);
                                }
                                else
                                {
                                    oDiv.style.left=oDiv.offsetLeft+speed+‘px‘;
                                }
                    },30);
}

</script>

改进2

window.onload=function ()
{
    var oDiv=document.getElementById(‘div1‘);
    oDiv.onmouseover=function ()
    {
        startMove(0);
    }
    oDiv.onmouseout=function ()
    {
        startMove(-150);
    }
};
var timer=null;

function startMove(iTarget)
{
    var oDiv=document.getElementById(‘div1‘);

    clearInterval(timer);
    timer=setInterval(function (){
                                var speed=0;

                                if(oDiv.offsetLeft>iTarget)
                                {
                                    speed=-10;
                                }
                                else
                                {
                                    speed=10;
                                }

                                if(oDiv.offsetLeft==iTarget)
                                {
                                    clearInterval(timer);
                                }
                                else
                                {
                                    oDiv.style.left=oDiv.offsetLeft+speed+‘px‘;
                                }
                    },30);
}

</script>

时间: 2024-07-29 04:13:59

JS-运动基础(一)的相关文章

JS运动基础(三) 弹性运动

加减速运动速度不断增加或减少速度减小到负值,会向反方向运动弹性运动在目标点左边,加速:在目标点右边,减速根据距离,计算加速度带摩擦力的弹性运动弹性运动+摩擦力 弹性:速度 += (目标点 - 当前值)/系数;  //6 , 7 , 8速度 *= 摩擦系数;   // 0.7 0.75终止条件距离足够近 并且 速度足够小 缓冲:var 速度 = (目标点 - 当前值)/系数;速度取整 1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <me

第八节 JS运动基础

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

js运动基础之匀速运动

单个属性匀速运动 1 /** 2 * 单属性匀速运动 3 */ 4 function fnSingleUniformMove(oDom, sAttr, iTarget, fn){ 5 var iSpeed, iCur; 6 clearInterval(oDom.timer); // 开启定时器前先清除定时器,避免动画重复叠加 7 oDom.timer = setInterval(function(){ 8 9 // 计算当前值 10 if(sAttr == 'opacity'){ 11 iCur

JS运动基础(一)

今天有幸被召回母校给即将毕业的学弟学妹们讲我这两年的工作史,看了下母校没啥特别的变化,就是寝室都安了空调,学妹们都非常漂亮而已..好了不扯蛋了,说下今天的主题吧.这些天我在深度定制语法高亮功能的同时发现了博客园提供的一些有意思的函数,甚至有几个博客园都没用到,我也不知道怎么才能触发那些功能..打开这个js就可以看到很多好用的东西了,虽然写的不怎么样,但是至少有这些功能. ps: 推荐安装一个代码格式化的插件,否则一坨看着蛋疼.比如第一个就是 log,方便调试. http://www.qdmm.c

js运动基础之缓冲运动

单属性缓冲运动 1 /** 2 * 单属性缓冲运动 3 */ 4 function fnSingleBufferMove(oDom, sAttr, iTarget, fn){ 5 var iSpeed, iCur; 6 clearInterval(oDom.timer); 7 oDom.timer = setInterval(function(){ 8 // 计算当前值 9 if(sAttr == 'opacity'){ 10 iCur = Math.round(fnGetStyle(oDom,

js运动基础1

1.在这个例子里面,如果在div块运动的过程中继续点击按钮的话,速度会越来越快,所以再开另一个定时器的时候要把之前的定时器给关掉.这里timer定义的位置会影响定时器是否关闭,如果把timer定义成局部变量,那么在每一次点击的时候都会是null,那么clearInterval根本起不到关定时器的作用.所以必须把定时器定义为全局变量. 2.对于speed这个变量,不用吧他放在外面,直接作为一个局部变量就好了. <!DOCTYPE html> <html> <head lang=

JS运动基础(四) 碰撞运动

碰撞运动撞到目标点,速度反转无重力的漂浮Div速度反转滚动条闪烁的问题过界后直接拉回来 加入重力反转速度的同时,减小速度纵向碰撞,横向速度也减小横向速度小数问题(负数) 1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 5 <title>无标题文档

JS运动基础(二) 摩擦运动、缓冲运动

position:static(静态定位) 当position属性定义为static时,可以将元素定义为静态位置,所谓静态位置就是各个元素在HTML文档流中应有的位置 podisition定位问题.所以当没有定义position属性时,并不说明该元素没有自己的位置,它会遵循默认显示为静态位置,在静态定位状态下无法通过坐标值(top,left,right,bottom)来改变它的位置. position:absolute(绝对定位) 当position属性定义为absolute时,元素会脱离文档流

JS运动基础

让一个div每隔30毫秒向左移动30px <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <style> #div1{width:200px; height:200px; background:red; position:absolute; left:0;

JS运动从入门到兴奋1

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