• 目录列表

    动画

    动画

    现在我们知道如何选择和更改DOM元素,我们可以创建一个简单的动画。

    让我们创建一个简单的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元素在容器元素的内部。注意用于元素的 position 属性:

    容器是相对的,盒子是绝对的。这将允许我们创建相对于容器的动画。


    我们将动画红色框,使其移动到容器的右侧。

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


    要创建相对于容器的动画,容器的position属性应设置为:

    动画

    动画

    要创建动画,我们需要以较小的时间间隔更改元素的属性。

    我们可以通过使用 setInterval() 方法来实现这一点,它允许我们创建一个定时器并调用一个以定义的间隔(以毫秒为单位)反复更改属性的函数。

    例如:

    var t = setInterval(move, 500);

    此代码创建一个每500毫秒调用一个 move() 函数的计时器。

    现在我们需要定义 move() 函数,改变框的位置。

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

    提示: move() 函数在每次调用时将box元素的left属性增加1。


    哪个函数用于停止setInterval定时器?

    动画

    动画

    以下代码定义了每10毫秒调用 move() 函数的定时器:

    var t = setInterval(move, 10);

    然而,这使得我们的盒子永远向右移动。要在盒子到达容器的末端时停止动画,我们向 move() 函数添加一个简单的检查,并使用 clearInterval() 方法来停止定时器。

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

    当箱子的 left 属性到值400时,盒子到达容器的末端,容器宽度为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";
      }
    }

    提示: 恭喜,您刚刚创建了您的第一个JavaScript动画!

    sgt3 

    1/5

    PHP中文网