用js实现动画效果
2017-09-05 21:56
211 查看
例子:
1)Animation.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
<title>example of animation</title>
<script type="text/javascript" src="scripts/addLoadEvent.js"></script>
<script type="text/javascript" src="scripts/moveElement.js"></script>
<script type="text/javascript" src="scripts/positionMessage.js"></script>
</head>
<body>
<p id="message">Whee!!!</p>
</body>
</html>2)addLoadEvent.js
function addLoadEvent(func){
var oldonload=window.onload;
if(typeof window.onload!='function'){
window.onload=func;
}
else{
window.onload=function(){
oldonload();
func();
}
}
}
3)positionMessage.js
function positionMessage(){
var elem=document.getElementById("message");
elem.style.position="absolute";
elem.style.left="50px";
elem.style.top="100px";
moveElement("message",200,100,10);
}
addLoadEvent(positionMessage);
4)moveElement.js
function moveElement(elementID,final_x,final_y,interval){
if(!document.getElementById){
return false;
}
if(!document.getElementById(elementID)){
return false;
}
var elem=document.getElementById(elementID);
var xpos=parseInt(elem.style.left);
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);
}
addLoadEvent(moveElement);思路是:
首先用positionMessage给定一个位置,然后去调用moveElement,检测是否达到目标位置,对不同的情况,横纵坐标加或者减,每隔interval毫秒就去重新调用moveElement(通过setTimeout函数)
1)Animation.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
<title>example of animation</title>
<script type="text/javascript" src="scripts/addLoadEvent.js"></script>
<script type="text/javascript" src="scripts/moveElement.js"></script>
<script type="text/javascript" src="scripts/positionMessage.js"></script>
</head>
<body>
<p id="message">Whee!!!</p>
</body>
</html>2)addLoadEvent.js
function addLoadEvent(func){
var oldonload=window.onload;
if(typeof window.onload!='function'){
window.onload=func;
}
else{
window.onload=function(){
oldonload();
func();
}
}
}
3)positionMessage.js
function positionMessage(){
var elem=document.getElementById("message");
elem.style.position="absolute";
elem.style.left="50px";
elem.style.top="100px";
moveElement("message",200,100,10);
}
addLoadEvent(positionMessage);
4)moveElement.js
function moveElement(elementID,final_x,final_y,interval){
if(!document.getElementById){
return false;
}
if(!document.getElementById(elementID)){
return false;
}
var elem=document.getElementById(elementID);
var xpos=parseInt(elem.style.left);
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);
}
addLoadEvent(moveElement);思路是:
首先用positionMessage给定一个位置,然后去调用moveElement,检测是否达到目标位置,对不同的情况,横纵坐标加或者减,每隔interval毫秒就去重新调用moveElement(通过setTimeout函数)
相关文章推荐
- 原生JS实现网页烟花动画效果——前端工程师必备技能!
- js通过canvas实现动画效果
- JS+CSS实现Google首页的动画效果
- js实现带缓动动画的导航栏效果
- two.js之实现动画效果示例
- JS实现倒计时动画效果
- js实现绿白相间竖向网页百叶窗动画切换效果
- JS 实现回到页面TOP的动画效果
- JS动画 | 用TweenMax实现收集水滴效果
- window.requestAnimationFrame与Tween.js配合使用实现动画缓动效果
- JS DOM编程艺术——用JS实现动画效果—— JS学习笔记2015-7-21(第88天)
- anime.js 实战:实现一个带有描边动画效果的复选框
- 仿谷歌主页js动画效果实现代码
- 纯CSS3实现带动画效果导航菜单无需js
- 利用tween,使用原生js实现模块回弹动画效果
- JS实现的透明度渐变动画效果示例
- js实现下拉菜单动画效果
- JS实现快速的导航下拉菜单动画效果附源码下载
- js实现div拖动动画运行轨迹效果代码分享
- JS+CSS实现网页加载中的动画效果