物體運動原理:通過改變物體的位置,而發生移動變化。 任何運動都是相對的,就像物理中的運動公式: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
問題:到達某個特定位 主站蜘蛛池模板: 柯坪县| 屏东市| 贵溪市| 平定县| 龙海市| 马公市| 龙游县| 盱眙县| 昌邑市| 景泰县| 中阳县| 黄骅市| 汪清县| 宣威市| 石台县| 龙海市| 玛纳斯县| 甘泉县| 勃利县| 玉门市| 定南县| 平南县| 东源县| 绥江县| 通州区| 泉州市| 乐平市| 浦江县| 临朐县| 昭觉县| 鹤庆县| 灵山县| 本溪| 柘城县| 怀宁县| 嘉峪关市| 阿巴嘎旗| 斗六市| 晋宁县| 巫山县| 柯坪县|