亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

首頁課程Javascript fun classanimation

animation

目錄列表

動畫

動畫

現(xiàn)在我們知道如何選擇和更改DOM元素,我們可以創(chuàng)建一個簡單的動畫。

讓我們創(chuàng)建一個簡單的HTML頁面,其中包含將使用JS動畫的框元素。

<style>
#container {
  width: 400px;
  height: 400px;
  background: green;
  position: relative;
}
#box {
  width: 30px;
  height: 30px;
  background: red;
  position: absolute;
}
</style>
<div id="container">
   <div id="box"> </div>
</div>

我們的box元素在容器元素的內(nèi)部。注意用于元素的 position 屬性:

容器是相對的,盒子是絕對的。這將允許我們創(chuàng)建相對于容器的動畫。


我們將動畫紅色框,使其移動到容器的右側(cè)。

提示: 您需要熟悉CSS才能更好地理解提供的代碼。


要創(chuàng)建相對于容器的動畫,容器的position屬性應(yīng)設(shè)置為:

動畫

動畫

要創(chuàng)建動畫,我們需要以較小的時間間隔更改元素的屬性。

我們可以通過使用 setInterval() 方法來實(shí)現(xiàn)這一點(diǎn),它允許我們創(chuàng)建一個定時器并調(diào)用一個以定義的間隔(以毫秒為單位)反復(fù)更改屬性的函數(shù)。

例如:

var t = setInterval(move, 500);

此代碼創(chuàng)建一個每500毫秒調(diào)用一個 move() 函數(shù)的計(jì)時器。

現(xiàn)在我們需要定義 move() 函數(shù),改變框的位置。

// 定義開始的位置
var pos = 0; 
// 獲取box元素
var box = document.getElementById("box");
function move() {
  pos += 1;
  box.style.left = pos+"px"; //px = pixels
}

提示: move() 函數(shù)在每次調(diào)用時將box元素的left屬性增加1。


哪個函數(shù)用于停止setInterval定時器?

動畫

動畫

以下代碼定義了每10毫秒調(diào)用 move() 函數(shù)的定時器:

var t = setInterval(move, 10);

然而,這使得我們的盒子永遠(yuǎn)向右移動。要在盒子到達(dá)容器的末端時停止動畫,我們向 move() 函數(shù)添加一個簡單的檢查,并使用 clearInterval() 方法來停止定時器。

function move() {
  if(pos >= 370) {
    clearInterval(t);
  }
  else {
    pos += 1;
    box.style.left = pos+"px";
  }
}

當(dāng)箱子的 left 屬性到值400時,盒子到達(dá)容器的末端,容器寬度為400px,盒子寬為30px 。

var pos = 0; 
// 盒子元素
var box = document.getElementById("box");
var t = setInterval(move, 10);
function move() {
  if(pos >= 370) {
    clearInterval(t);
  }
  else {
    pos += 1;
    box.style.left = pos+"px";
  }
}

提示: 恭喜,您剛剛創(chuàng)建了您的第一個JavaScript動畫!

sgt3