1 function getByClass(oParent,cName){
2 var elements = document.getElementsByTagName('*');
3 var i = 0;
4 var results = [];
5 for(var i=0;i<elements.length;i++){
6 if(elements[i].className == cName){
7 results.push(elements[i]);
8 }
9 }
10 return results;
11 }
12 function $(id){
13 return document.getElementById(id);
14 }
15 function getStyle(obj,attr){
16 if(obj.currentStyle){
17 return obj.currentStyle[attr];
18 }else{
19 return getComputedStyle(obj,false)[attr];
20 }
21 }
22 function startMove(obj,json,fn){ //width:300 height:300 opacity:50
23
24 clearInterval(obj.timer);
25
26 obj.timer = setInterval(function(){
27 var flag = true;
28 //一个都能不能少,都等着
29 for(var attr in json){
30 if(attr=='opacity'){
31 var icurrent = parseInt(parseFloat(getStyle(obj,attr))*100);
32 }else{
33 var icurrent = parseInt(getStyle(obj,attr));
34 }
35 var speed = (json[attr] - icurrent)/8;
36
37 speed = speed>0?Math.ceil(speed):Math.floor(speed);
38
39 //只要任何一个还没到,修改状态,让width height opacity继续运动
40 if(icurrent != json[attr]){
41 flag = false;
42 }
43 if(attr=='opacity'){
44 obj.style.filter = "alpha(opacity:"+(icurrent+speed)+")";
45 obj.style.opacity = (icurrent+speed)/100;
46 }else{
47 obj.style[attr] = icurrent+speed+'px';
48 }
49 }
50 //只判断只要还有一个人没到咱就等 width height opacity都停止的
51 if(flag){
52 clearInterval(obj.timer);
53 //alert('我到了,不用担心');
54 if(fn){
55 fn();
56 }
57 }
58 }, 30)
59 }
60
61
62 //弹性运动框架
63 function elasticMove(obj,target){
64 var speed = 0;
65 clearInterval(obj.timer);
66 //刚开始还没有运动,这里也不会出差
67 obj.timer = setInterval(function(){
68 speed += (target-obj.offsetTop)/3;
69 speed *= 0.75;
70
71 if(Math.abs(speed)<1 && Math.abs(target-obj.offsetTop)<1){
72 clearInterval(obj.timer);
73 }else{
74 obj.style.top = obj.offsetTop + speed +'px';
75 }
76 document.title = 'target:'+target+'speed'+speed;
77
78 }, 30)
79 }