如何区分JavaScript中的手动动画和自动动画?
手动动画
在“手动动画”下,动画过程不是自动的。以下是使用DOM对象属性和JavaScript函数的简单动画的实现,如下所示。以下列表包含不同的DOM方法。
我们正在使用JavaScript函数getElementById()获取DOM对象,然后将其分配给全局变量imgObj。
我们定义了一个初始化函数 init()来初始化 imgObj,并在其中设置其position和left属性。
在窗口加载时,我们正在调用初始化函数。
最后,我们调用moveRight() 函数将左距离增加10个像素。您也可以将其设置为负值以将其移到左侧。
示例
您可以尝试运行以下代码以在JavaScript中实现动画,
<html> <head> <title>JavaScript Animation</title> <script> <!-- var imgObj = null; function init() { imgObj = document.getElementById('myImage'); imgObj.style.position= 'relative'; imgObj.style.left = '0px'; } function moveRight() { imgObj.style.left = parseInt(imgObj.style.left) + 10 + 'px'; } window.onload =init; //--> </script> </head> <body> <form> <img id="myImage" src="/images/html.gif" /> <p>Click button below to move the image to right</p> <input type = "button" value = "Click Me" onclick = "moveRight();" /> </form> </body> </html>
自动化动画
我们可以通过使用JavaScript函数setTimeout()来自动执行此过程,如下所示:
在这里,我们添加了更多方法。所以让我们看看这里有什么新东西-
MoveRight的()函数是调用的setTimeout()函数来设置的位置imgObj。
我们添加了一个新函数stop()来清除由 setTimeout() 函数设置的计时器,并将该对象设置在其初始位置。
示例
您可以尝试运行以下代码以在JavaScript中实现自动动画-
<html> <head> <title>JavaScript Animation</title> <script> <!-- var imgObj = null; var animate ; function init() { imgObj = document.getElementById('myImage'); imgObj.style.position= 'relative'; imgObj.style.left = '0px'; } function moveRight() { imgObj.style.left = parseInt(imgObj.style.left) + 10 + 'px'; animate = setTimeout(moveRight,20); // call moveRight in 20msec } function stop(){ clearTimeout(animate); imgObj.style.left = '0px'; } window.onload =init; //--> </script> </head> <body> <form> <img id="myImage" src="/images/html.gif" /> <p>Click the buttons below to handle animation</p> <input type = "button" value = "Start" onclick = "moveRight();" /> <input type = "button" value = "Stop" onclick = "stop();" /> </form> </body> </html>