js實現(xiàn)類似jquery里animate動畫效果的方法
本文實例講述了js實現(xiàn)類似jquery里animate動畫效果的方法。分享給大家供大家參考。具體分析如下:
該實例可實現(xiàn)鼠標移上,先寬度變化,再高度變化,最后透明度變化,鼠標移出,再依次變回去的效果。
要點一:
startrun(obj,attr,target,fn)
box.onmouseover = function(){
startrun(box,"width",200,function(){
startrun(box,"height",200,function(){
startrun(box,"opacity","100")
});
});
}
如上面,函數(shù)也可以做為參數(shù)使用,就可以達到先執(zhí)行某個動作,再執(zhí)行某個動作的效果了。
要點二:
if(cur == target){
clearInterval(obj.timer);
if(fn){
fn();
}
}
當運動到達目標點,關閉定時器,然后就可以執(zhí)行新的函數(shù)了。
最后,上代碼:
<!DOCTYPE html>
<html>
<head>
<meta charset="gb2312" />
<title>無標題文檔</title>
<style>
<!--
body{margin:0; padding:0; font:12px/1.5 arial;}
#box{width:100px; height:100px; position:absolute;
background:#06c; left:0;filter:alpha(opacity=30); opacity:0.3;}
-->
</style>
<script>
<!--
function getstyle(obj,name){
if(obj.currentStyle){
return obj.currentStyle[name];
}else{
return getComputedStyle(obj,false)[name];
}
}
window.onload = function(){
var box = document.getElementById("box");
box.onmouseover = function(){
startrun(box,"width",200,function(){
startrun(box,"height",200,function(){
startrun(box,"opacity","100")
});
});
}
box.onmouseout = function(){
startrun(box,"height",100,function(){
startrun(box,"width",100,function(){
startrun(box,"opacity","30");
});
});
}
}
function startrun(obj,attr,target,fn){
clearInterval(obj.timer);
obj.timer = setInterval(function(){
var cur = 0;
if(attr == "opacity"){
cur = Math.round(parseFloat(getstyle(obj,attr))*100);
}else{
cur = parseInt(getstyle(obj,attr));
}
var speed = (target-cur)/8;
speed = speed>0?Math.ceil(speed):Math.floor(speed);
if(cur == target){
clearInterval(obj.timer);
if(fn){
fn();
}
}else{
if(attr == "opacity"){
obj.style.filter = "alpha(opacity="+(cur+speed)+")";
obj.style.opacity = (cur+speed)/100;
}else{
obj.style[attr] = cur + speed + "px";
}
}
},30)
}
//-->
</script>
</head>
<body>
<div id="box">
</div>
</body>
</html>
希望本文所述對大家的javascript程序設計有所幫助。
相關文章
Code:loadScript( )加載js的功能函數(shù)
Code:loadScript( )加載js的功能函數(shù)...2007-02-02
JavaScript實現(xiàn)獲取用戶單擊body中所有A標簽內(nèi)容的方法
這篇文章主要介紹了JavaScript實現(xiàn)獲取用戶單擊body中所有A標簽內(nèi)容的方法,涉及javascript針對頁面元素及事件響應相關操作技巧,需要的朋友可以參考下2017-06-06
javascript設計模式Constructor(構造器)模式
這篇文章主要為大家詳細介紹了javascript設計模式Constructor(構造器)模式 ,感興趣的小伙伴們可以參考一下2016-08-08
DOM_window對象屬性之--clipboardData對象操作代碼
clipboardData 對象提供了對于預定義的剪貼板格式的訪問,以便在編輯操作中使用。2011-02-02

