2012-03-28 7 views
0

タイトルが言うように、IE 8で動作する以下のJavascriptを無駄にするように努力しています。誰かが正しい方向に私を向けることができますか?IE 8で動作するJavascript/css

このスクリプトは、EI9、Firefox、およびChromeのすべてのうまく動作しています。 IE9に固有の

(function(jQuery) 
{ 
    jQuery.fn.clock = function(options) 
    { 
    var defaults = { 
     offset: '+0', 
     type: 'analog' 
    }; 
    var _this = this; 
    var opts = jQuery.extend(defaults, options); 

    setInterval(function() { 
     var seconds = jQuery.calcTime(opts.offset).getSeconds(); 
     if(opts.type=='analog') 
     { 
     var sdegree = seconds * 6; 
     var srotate = "rotate(" + sdegree + "deg)"; 
     var rad = Math.PI/180 * sdegree, 
      cos = Math.cos(rad), 
      sin = Math.sin(sin); 
     jQuery(_this).find(".sec").css({"-moz-transform" : srotate, "-webkit-transform" : srotate, "-ms-transform" : srotate, "-sand-transform" : srotate, 
             '-ms-filter': "progid:DXImageTransform.Microsoft.Matrix(M11="+cos+", M12="+(-sin)+", M21="+sin+", M22="+cos+", SizingMethod='auto expand')"}); 
     } 
     else 
     { 
     jQuery(_this).find(".sec").html(seconds); 
     } 
    }, 1000); 

    setInterval(function() { 
     var hours = jQuery.calcTime(opts.offset).getHours(); 
     var mins = jQuery.calcTime(opts.offset).getMinutes(); 
     if(opts.type=='analog') 
     { 
     var hdegree = hours * 30 + (mins/2); 
     var hrotate = "rotate(" + hdegree + "deg)"; 
     var rad = Math.PI/180 * hdegree, 
      cos = Math.cos(rad), 
      sin = Math.sin(sin); 
     jQuery(_this).find(".hour").css({"-moz-transform" : hrotate, "-webkit-transform" : hrotate, "-ms-transform" : hrotate, "-sand-transform" : hrotate, 
             '-ms-filter': "progid:DXImageTransform.Microsoft.Matrix(M11="+cos+", M12="+(-sin)+", M21="+sin+", M22="+cos+", SizingMethod='auto expand')"}); 
     } 
     else 
     { 
     jQuery(_this).find(".hour").html(hours+':'); 
     } 
     var meridiem = hours<12?'AM':'PM'; 
     jQuery(_this).find('.meridiem').html(meridiem); 
    }, 1000); 

    setInterval(function() { 
     var mins = jQuery.calcTime(opts.offset).getMinutes(); 
     if(opts.type=='analog') 
     { 
     var mdegree = mins * 6; 
     var mrotate = "rotate(" + mdegree + "deg)"; 
     var rad = Math.PI/180 * mdegree, 
      cos = Math.cos(rad), 
      sin = Math.sin(sin); 
     jQuery(_this).find(".min").css({"-moz-transform" : mrotate, "-webkit-transform" : mrotate, "-ms-transform" : mrotate, "-sand-transform" : mrotate, 
             '-ms-filter': "progid:DXImageTransform.Microsoft.Matrix(M11="+cos+", M12="+(-sin)+", M21="+sin+", M22="+cos+", SizingMethod='auto expand')"});     
     } 
     else 
     { 
     jQuery(_this).find(".min").html(mins+':'); 
     } 
    }, 1000); 
    } 
})(jQuery); 


jQuery.calcTime = function(offset) { 
    d = new Date(); 
    utc = d.getTime() + (d.getTimezoneOffset() * 60000); 
    nd = new Date(utc + (3600000*offset)); 
    return nd; 
}; 
+0

エラーのテキストは何ですか? –

+0

@Kolinkエラーは送出されていません。私の質問を修正しました – Plastika

答えて

1

-ms-filter(金庫がIE8の下で何が動作していないと仮定します)。.. EI8は手が動かない残りますが、ブラウザには表示されるエラーはありません。 IE8以降では、プロパティはちょうどfilterでした。

あなたがIE < = 8のためにIE9のため-ms-transformfilterを設定するようにコードを変更することができるようにIE9は、-ms-transform下の変換をサポートしています。

+0

ありがとうございました - 良いニュースは、私はついにアニメーションがあります!悪いニュースは、正確には希望の回転をしていません。 – Plastika

+0

あなたの行列はおそらく間違っています...私は 'sin = Math.sin(rad)'を意味すると思いますが、代わりに 'Math.sin(sin)'を書きました。 –

+0

もう一度ありがとう!少し回転の動きがまだまだ奇妙です - どこが間違っているのかよく分かりません – Plastika

関連する問題