js实现字母移动
编译器:Visual studio Code
代码都是在Google Chrome里调试。
html代码
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UFT-8">
<title>js动画</title>
<link href="css/03.css" rel="stylesheet">
</head>
<body>
<p id="message">Whee!</p>
<p id="message2">whoa!</p>
<script type="text/javascript" src="js/addLoadEvent.js"></script>
<script type="text/javascript" src="js/positionMessage.js"></script>
<script type="text/javascript" src="js/moveElement.js"></script>
</body>
</html>
addLoadEvent.js
为了能有多个事件需要执行而设置的,这里不需要,但也可以用¥。¥。
function addLoadEvent(func)
{
var oldonload = window.onload;
if(typeof oldonload != 'function') //判断是否存在function
{
window.onload = func;
}
else
{
window.onload = function() //执行多个
{
oldonload();
func();
}
}
}
positionMessage.js
给message和message2定位。
function positionMessage()
{
var elem = document.getElementById("message");
elem.style.position = "absolute"; //绝对定位
elem.style.left = "50px";
elem.style.top = "100px";
moveElement("message",125,25,20); //调用moveElement函数
var elem = document.getElementById("message2");
elem.style.position = "absolute";
elem.style.left = "50px";
elem.style.top = "50px";
moveElement("message2",125,125,20); //调用moveElement函数
}
moveElement.js
移动message和message2。
function moveElement(elementID,final_x,final_y,interval) //抽象
{
var elem = document.getElementById(elementID);
var xpos = parseInt(elem.style.left); //parseInt转化为整型数字
var ypos = parseInt(elem.style.top);
if(xpos == final_x && ypos == final_y)
{
return true;
}
if(xpos < final_x)
{
xpos++;
}
if(xpos > final_x)
{
xpos--;
}
if(ypos < final_y)
{
ypos++;
}
if(ypos >final_y)
{
ypos--;
}
elem.style.left = xpos + "px";
elem.style.top = ypos + "px";
var repeat = "moveElement('"+elementID+"',"+final_x+","+final_y+","+interval+")";
movement = setTimeout(repeat,interval);
}
var repeat = “moveElement(’”+elementID+"’,"+final_x+","+final_y+","+interval+")";
这一串代码先看elementID,由于elementID是字符串,必须要要变为引号括起。而+连接字符串(包括逗号),级联。
JS DOM编程艺术(第二版)第十章。