物體運動原理:通過改變物體的位置,而發生移動變化。 任何運動都是相對的,就像物理中的運動公式:s(要達到的)=s0(當前的樣式值)+vt。
方法:
1.運動的物體使用絕對定位
2.通過改變定位物體的屬性(left、right、top、bottom)值來使物體移動。例如向右或左移動可以使用offsetLeft(offsetRight)來控制左右移動。
步驟:
1、開始運動前,先清除已有定時器 (因為:是連續點擊按鈕,物體會運動越來越快,造成運動混亂)
2、開啟定時器,計算速度
3、把運動和停止隔開(if/else),判斷停止條件,執行運動
關鍵點:
1、多物體
將定時器附在對象上
2、鏈式運動
循環調用定時器:fnEnd函數里開啟另外的定時器
3、多值運動
循環屬性值數組:一個定時器時間,執行多個屬性值得改變
判斷運動結束,所有屬性都到預定的值:增加一個布爾值標志,開始時,var bStop=true; //假設:所有值都已經到了;在循環的時候判斷,如果if(cur!=json[attr]) bStop=false;
一.定時器
在javascritp中,有兩個關于定時器的專用函數,它們是:
1.倒計定時器:timename=setTimeout("function();",delaytime);
2.循環定時器:timename=setInterval("function();",delaytime);
function()是定時器觸發時要執行的是事件的函數,可以是一個函數,也可以是幾個函數,或者javascript的語句也可以,單要用;隔開;delaytime則是間隔的時間,以毫秒為單位。
倒計時定時器就是在指定時間后觸發事件,而循環定時器就是在間隔時間到來時反復觸發事件,其區別在于:前者只是作用一次,而后者則不停地作用。
倒計時定時器一般用于頁面上只需要觸發一次的的情況,比如點擊某按鈕后頁面在一定時間后跳轉到相應的站點,也可以用于判斷一個瀏覽者是不是你的站點上的“老客”,如果不是,你就可以在5秒或者10秒后跳轉到相應的站點,然后告訴他以后再來可以在某個地方按某一個按鈕就可以快速進入。
循環定時器一般用于站點上需要從復執行的效果,比如一個javascript的滾動條或者狀態欄,也可以用于將頁面的背景用飛雪的圖片來表示。這些事件需要隔一段時間運行一次。
有時候我們也想去掉一些加上的定時器,此時可以用clearTimeout(timename) 來關閉倒計時定時器,而用clearInterval(timename)來關閉循環定時器。
二.運動研究
1.運動:勻速運動(讓物體動起來)
對定時器的使用
給DIV加絕對定位
offsetLeft
問題:到達某個特定位 主站蜘蛛池模板: 精河县| 山阳县| 洛宁县| 永靖县| 克拉玛依市| 拉萨市| 阜阳市| 贵州省| 桃园市| 贵定县| 光山县| 云梦县| 弋阳县| 家居| 泸水县| 厦门市| 隆德县| 苍山县| 岐山县| 吉林市| 荔波县| 武山县| 钟祥市| 罗城| 靖宇县| 泰安市| 资溪县| 枞阳县| 泉州市| 奉贤区| 崇文区| 都江堰市| 红河县| 顺昌县| 连云港市| 颍上县| 高雄市| 长兴县| 大荔县| 繁峙县| 阿图什市|