在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ HTML/ 淺談 Javascript 如何實(shí)現(xiàn)勻速運(yùn)動
淺談 JavaScript 之事件綁定
淺談 javascript 中字符串 String 與數(shù)組 Array
淺談 javascript 中基本包裝類型
淺談 JavaScript Math 和 Number 對象
淺談 Javascript 的靜態(tài)屬性和原型屬性
淺談 JavaScript 中定義變量時有無 var 聲明的區(qū)別
淺談 JavaScript Array 對象
淺談 JavaScript 函數(shù)參數(shù)的可修改性問題
淺談 javascript 中的 instanceof 和 typeof
淺談 JavaScript 中 Date (日期對象),Math 對象
淺談 Javascript 執(zhí)行順序
淺談 javascript 函數(shù)屬性和方法
淺談 JavaScript 中面向?qū)ο蠹夹g(shù)的模擬
淺談 javascript 的原型繼承
淺談 javascript 事件取消和阻止冒泡
根據(jù)一段代碼淺談 Javascript 閉包
淺談 Javascript 面向?qū)ο缶幊?/span>
淺談 javascript 六種數(shù)據(jù)類型以及特殊注意點(diǎn)
淺談 Javascript 變量作用域問題
淺談 javascript 函數(shù)內(nèi)部屬性
淺談 javascript 中自定義模版
淺談 JavaScript 字符集
淺談 javascript 面向?qū)ο缶幊?/span>
淺談 JavaScript 框架分類
淺談 JavaScript 中的 Math.atan() 方法的使用
淺談 Javascript 數(shù)組與字典
淺談 JavaScript 數(shù)據(jù)類型及轉(zhuǎn)換
淺談 javascript 的調(diào)試
淺談 Javascript 嵌套函數(shù)及閉包
淺談 javascript 回調(diào)函數(shù)
淺談 JavaScript Date 日期和時間對象
淺談 Javascript 中的 Function 與 Object
淺談 JavaScript 數(shù)據(jù)類型
淺談 javascript 中 this 在事件中的應(yīng)用
淺談 javascript 中的閉包
淺談 javascript 函數(shù)劫持
淺談 Javascript 中深復(fù)制
淺談 JavaScript 函數(shù)節(jié)流
淺談 JavaScript 中的 String 對象常用方法
淺談 JavaScript 事件的屬性列表
淺談 JavaScript 函數(shù)與棧
淺談 JavaScript 的事件
淺談 javascript 中的作用域
淺談 JavaScript 的執(zhí)行效率
淺談 Javascript 事件模擬
淺談 JavaScript function 函數(shù)種類
淺談 javascript 歸并方法
淺談 javascript 迭代方法
淺談 JavaScript 編程語言的編碼規(guī)范
淺談 JavaScript 實(shí)現(xiàn)面向?qū)ο笾械念?/span>
淺談 Javascript 鼠標(biāo)和滾輪事件
淺談 Javascript Base64 加密解密
淺談 Javascript 中勻速運(yùn)動的停止條件
淺談 javascript 實(shí)現(xiàn)八大排序
淺談 javascript 的分號的使用
淺談 javascript 中 createElement 事件
淺談 javascript 的數(shù)據(jù)類型檢測
淺談 javascript 對象模型和 function 對象
淺談 Javascript 如何實(shí)現(xiàn)勻速運(yùn)動
淺談 JavaScript 字符串與數(shù)組
淺談 javascript 面向?qū)ο蟪绦蛟O(shè)計(jì)
淺談 Javascript 事件處理程序的幾種方式

淺談 Javascript 如何實(shí)現(xiàn)勻速運(yùn)動

網(wǎng)站上會經(jīng)常用到 Javascript 中的運(yùn)動,這次與大家分享一下一些運(yùn)動的基本應(yīng)用。方便大家在開發(fā)中能夠直接使用。

代碼簡單易懂,適用于初學(xué)者。最后會一步一步整理出一套自己的運(yùn)動框架。

應(yīng)用案例效果圖:

http://wiki.jikexueyuan.com/project/brief-talk-js/images/6.png" alt="" />

鼠標(biāo)移動到分享上 ,左邊的 div 就會顯示出來。移開會自己恢復(fù)。相信這個大家都會用到,很實(shí)用。下面看看代碼是如何實(shí)現(xiàn)的。

<style type="text/css">  

            #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>  

[js] view plaincopy
<body>  

        <div id="div1">  

            <span>  

                分享到  

            </span>  

        </div>  

    </body>  

以下是 Javascript 代碼

<script type="text/javascript">  

            window.onload=function(){  

                var oDiv=document.getElementById("div1");  

                oDiv.onmouseover=function(){  

                    startMove(0);  

                };  

                oDiv.onmouseout=function(){  

                    startMove(-150);  

                };  

            }  

            var time=null;  

            function startMove(iTraget){  

                var oDiv=document.getElementById("div1");  

                clearInterval(time);  

                time=setInterval(function(){  

                    var speed=0;  

                    if(oDiv.offsetLeft>iTraget){  

                        speed=-10;  

                    }else{  

                        speed=10;  

                    }  

                    if(oDiv.offsetLeft==iTraget){  

                        clearInterval(time);  

                    }else{  

                        oDiv.style.left=oDiv.offsetLeft+speed+'px';  

                    }  

                },30);  

            }  

        </script>  

思路:

樣式中初始的 left 是- 150 這樣 div 就是縮在里面,給 0 就會顯示出來。那么我們只要變動這個值就可以了

startMove 中的參數(shù) iTarget 是目標(biāo)點(diǎn),表示到哪個目標(biāo)點(diǎn)會停下來。

控制 speed 的大小 就能控制運(yùn)動的快慢。如果達(dá)到目標(biāo)點(diǎn) 就停止定時器。

規(guī)律:

  • 假設(shè)

  • left:30 iTarget:300 得出 往右 為正

  • left:600 iTarget:50 得出 往左 為負(fù)

  • 通過當(dāng)前位置 left 與目標(biāo)點(diǎn)的 關(guān)系 iTarget 推斷出 速度的正負(fù)

注意: 一上來就要關(guān)了定時器,因?yàn)槭敲看我苿拥椒窒淼?,都會開個定時器,開的越多相對來說速度就越快,因?yàn)橥瑫r會有多個定時器執(zhí)行。所以每次要保證一個定時器工作。

遵循:函數(shù)功能一樣,參數(shù)越少越好的原則 ,所以根據(jù)上面的規(guī)律把 speed 并不是作為參數(shù)傳入。

舉個生活中的例子:你打車,告訴出租車司機(jī)已 100 碼的速度到哪哪哪,一般是不可能的吧。打車你不可能告訴師傅你要跑多快。

所以程序也是一樣的,這里就把速度這個傳參去掉了。

當(dāng)然現(xiàn)在的這個運(yùn)動框架還會有許多問題,在之后會陸續(xù)解決。下篇文章,我們來探討下勻速運(yùn)動如何停止。