//運動框架(完美版)
//獲取非行間樣式
function getStyle(obj, name) {
if(obj.currentStyle) {
return obj.currentStyle[name];
} else {
return getComputedStyle(obj,false)[name];
}
}
// startMove(oDiv, {'width':'300', height:400})
function startMove(obj, json, fnEnd) {
//清除定時器
clearInterval(obj.timer);
//設置定時器
obj.timer = setInterval(function() {
var flag = true; //放一個變量,假設:所有值都已經到了
//遍歷json裏面的數據組
for(var attr in json) {
//獲取需要變換的屬性的值
var cur = 0;
if(attr == 'opacity') {
cur = Math.round(parseFloat(getStyle(obj,attr))*100);
} else {
cur = parseInt(getStyle(obj,attr));
}
//設定運動速度
var speed = (json[attr]-cur)/10;
speed=speed>0?Math.ceil(speed):Math.floor(speed);
//運動
if(cur != json[attr])
flag = false;
if(attr == 'opacity') {
obj.style.filter = 'alpha(opacity:'+(cur+speed)+')';
obj.style.opacity = (cur+speed)/100;
} else {
obj.style[attr] = (cur+speed)+'px';
}
}
if(flag) {
clearInterval(obj.timer);
if(fnEnd) fnEnd();
}
}, 30);
}
【代碼】完美運動框架
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.