1 function css(obj, attr, value) {
2 if (arguments.length == 3) {
3 obj.style[attr] = value;
4 } else {
5 if (obj.currentStyle) {
6 return obj.currentStyle[attr];
7 } else {
8 return getComputedStyle(obj, false)[attr];
9 }
10 }
11 }
12
13 function animate(obj, attr, fn) {
14 clearInterval(obj.timer);
15 var cur = 0;
16 var target = 0;
17 var speed = 0;
18 obj.timer = setInterval(function () {
19 var bFlag = true;
20 for (var key in attr) {
21 if (key == 'opacity ') {
22 cur = css(obj, 'opacity') * 100;
23 } else {
24 cur = parseInt(css(obj, key));
25 }
26 target = attr[key];
27 speed = ( target - cur ) / 8;
28 speed = speed > 0 ? Math.ceil(speed) : Math.floor(speed);
29 if (cur != target) {
30 bFlag = false;
31 if (key == 'opacity') {
32 obj.style.opacity = ( cur + speed ) / 100;
33 obj.style.filter = "alpha(opacity:" + ( cur + speed ) + ")";
34 } else {
35 obj.style[key] = cur + speed + "px";
36 }
37 }
38 }
39 if (bFlag) {
40 clearInterval(obj.timer);
41 fn && fn.call(obj);
42 }
43 }, 30 );
44 }