Skip to content

Commit 04222b5

Browse files
committed
运动框架合集
运动框架合集
1 parent 3523d15 commit 04222b5

File tree

1 file changed

+103
-0
lines changed

1 file changed

+103
-0
lines changed

iquery.js

Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
/*2015 11 25 23:32*/
2+
3+
//获取样式信息
4+
function getStyle(node,attr){ //无法取到复合样式 如:border
5+
if(node.currentStyle){ //IE
6+
return node.currentStyle[attr];
7+
}else{
8+
return getComputedStyle(node,false)[attr];
9+
}
10+
}
11+
//多属性缓冲运动
12+
function bufferMove(obj,json,fn){
13+
clearInterval(obj.timer);
14+
obj.timer = setInterval(function(){
15+
var state = true;
16+
for(var attr in json){
17+
var iCur = 0;
18+
if(attr == 'opacity'){
19+
iCur = parseInt(parseFloat(getStyle(obj,attr))*100);
20+
}else{
21+
iCur = parseInt(getStyle(obj,attr));
22+
}
23+
var iSpeed = (json[attr]-iCur)/8;
24+
iSpeed = iSpeed>0 ? Math.ceil(iSpeed) : Math.floor(iSpeed);
25+
if(iCur != json[attr]){
26+
state = false;
27+
}
28+
if(attr == 'opacity'){
29+
obj.alpha = iCur+iSpeed;
30+
obj.style.filter = 'alpha(opacity:'+obj.alpha+')';
31+
obj.style.opacity = obj.alpha/100;
32+
}else{
33+
obj.style[attr] = iCur+iSpeed+"px";
34+
}
35+
}
36+
if(state){
37+
clearInterval(obj.timer);
38+
if(fn){fn();}
39+
}
40+
},30);
41+
}
42+
//弹性运动
43+
function elasticityMove(obj,attr,iTarget,fn){
44+
var iVal = 0;
45+
var iSpeed = 0;
46+
clearInterval(obj.timer);
47+
obj.timer=setInterval(function(){
48+
if(iTarget == parseInt(getStyle(obj,attr))){
49+
return;
50+
}
51+
iSpeed +=(iTarget-parseInt(getStyle(obj,attr)))/5;
52+
iSpeed *=0.7;
53+
iVal += iSpeed;
54+
if((Math.abs(iSpeed)<1)&&(Math.abs(iVal-iTarget)<1)){
55+
clearInterval(obj.timer);
56+
obj.style[attr] = iTarget+'px';
57+
if(fn){fn();}
58+
}else{
59+
obj.style[attr] = iVal+'px';
60+
console.log(iSpeed);
61+
}
62+
},30);
63+
}
64+
//基于底边的碰撞运动
65+
function collisionMove(obj,xSpeed,ySpeed){
66+
var w = document.documentElement.clientWidth;
67+
var h = document.documentElement.clientHeight;
68+
var xNow = 0;
69+
var yNow = 0;
70+
clearInterval(obj.timer);
71+
obj.timer = setInterval(function(){
72+
ySpeed +=3;
73+
xNow= obj.offsetLeft+xSpeed;
74+
yNow = obj.offsetTop+ySpeed;
75+
if(yNow>=(h-obj.offsetHeight)){
76+
ySpeed *= -0.8;
77+
xSpeed *= 0.8;
78+
yNow = h-obj.offsetHeight;
79+
}else if(yNow<=0){
80+
ySpeed *= -1;
81+
yNow = 0;
82+
}
83+
if(xNow>=(w-obj.offsetWidth)){
84+
xSpeed *= -0.8;
85+
xNow = w-obj.offsetWidth;
86+
}else if(xNow<=0){
87+
xSpeed *= -0.8;
88+
xNow = 0;
89+
}
90+
if(Math.abs(xSpeed)<1){
91+
xSpeed = 0;
92+
}
93+
if(Math.abs(ySpeed)<1){
94+
ySpeed = 0;
95+
}
96+
if(xSpeed == 0&& ySpeed == 0&&yNow == h-obj.offsetHeight){
97+
clearInterval(obj.timer);
98+
}else{
99+
obj.style.left = xNow+'px';
100+
obj.style.top = yNow+'px';
101+
}
102+
},30);
103+
}

0 commit comments

Comments
 (0)