KingZero00
2016-04-06 17:32
window.onload = function(){
var Li1 = document.getElementById('li1');
Li1.timer = null;
Li1.onmouseover = function(){
startMove(this,'opacity',100);
}
Li1.onmouseout = function(){
startMove(this,'opacity',30);
}
}
var alpha = 30;
function startMove(obj,attr,iTarget){
clearInterval(obj.timer);
obj.timer = setInterval(function(){
var icur = 0;
if (attr == 'opacity') {
icur = parseFloat(getStyle(obj,attr))*100;
}else{
icur = parseInt(getStyle(obj,attr));
}
var speed = (iTarget-icur)/8;
speed = speed > 0 ? Math.ceil(speed):Math.floor(speed);
if(icur == iTarget){
clearInterval(obj.timer);
}else{
if (attr == 'opacity') {
obj.style.filter = 'alpha(opacity:'+(icur + speed)+')';
obj.style.opacity = (icur+speed)/100;
}else{
obj.style[attr] = icur + speed + 'px';//.style[attr]方便传参
}
}
},30)
}
function getStyle(obj,attr){
if (obj.currentStyle) {
return obj.currentStyle[attr];//支持IE
}else{
return getComputedStyle(obj,false)[attr];//支持火狐
}
}
并不是所有数据都会出现小数点误差情况,老师也列举了好几个,不是就出现一个么。
虽然误差小,但是加了总比不加合适
JS动画效果
113920 学习 · 1500 问题
相似问题