問題是我在chrome瀏覽器上測(cè)試過就算不加Math.round()也不會(huì)出現(xiàn)老師說的小數(shù)不穩(wěn)定的情況啊
?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];//支持火狐
? ?}
?}
2016-04-06
并不是所有數(shù)據(jù)都會(huì)出現(xiàn)小數(shù)點(diǎn)誤差情況,老師也列舉了好幾個(gè),不是就出現(xiàn)一個(gè)么。
雖然誤差小,但是加了總比不加合適