Javascript可以在Firefox、Chrome和Safari中使用,但不能在IE中使用

Javascript可以在Firefox、Chrome和Safari中使用,但不能在IE中使用,javascript,jquery,Javascript,Jquery,正如标题所说。我有两个动画时钟,它们在IE8中根本不动 是否有什么东西我在这里错过了,这是影响动画在IE 时钟: (function(jQuery) { jQuery.fn.clock = function(options) { var defaults = { offset: '+0', type: 'analog' }; var _this = this; var opts = jQuery.extend(defaults, o

正如标题所说。我有两个动画时钟,它们在IE8中根本不动 是否有什么东西我在这里错过了,这是影响动画在IE

时钟:

(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)";
        jQuery(_this).find(".sec").css({"-moz-transform" : srotate, "-webkit-transform" : srotate, "-ms-transform" : srotate});
      }
      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)";
        jQuery(_this).find(".hour").css({"-moz-transform" : hrotate, "-webkit-transform" : hrotate, "-ms-transform" : hrotate});
      }
      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)";        
        jQuery(_this).find(".min").css({"-moz-transform" : mrotate, "-webkit-transform" : mrotate, "-ms-transform" : mrotate});                
      }
      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;
};
(函数(jQuery)
{
jQuery.fn.clock=函数(选项)
{
var默认值={
偏移量:'+0',
类型:“模拟”
};
var_this=这个;
var opts=jQuery.extend(默认值、选项);
setInterval(函数(){
var seconds=jQuery.calcTime(opts.offset.getSeconds();
if(opts.type==“模拟”)
{
var sdegree=秒*6;
var srotate=“旋转(“+sdegree+”deg)”;
jQuery(_this).find(“.sec”).css({“-moz-transform”:srotate,“-webkit-transform”:srotate,“-ms-transform”:srotate});
}
其他的
{
jQuery(_this.find(“.sec”).html(秒);
}
}, 1000 );
setInterval(函数(){
var hours=jQuery.calcTime(opts.offset.getHours();
var mins=jQuery.calcTime(opts.offset.getMinutes();
if(opts.type==“模拟”)
{
var hdegree=小时*30+(分钟/2);
var hrotate=“旋转(“+hdegree+”deg)”;
jQuery(_this).find(“.hour”).css({“-moz transform”:hrotate,“-webkit transform”:hrotate,“-ms transform”:hrotate});
}
其他的
{
jQuery(_this.find(“.hour”).html(hours+”:');
}

var meridiem=hours仅谈论IE,它总是由缺少的某些内容或附加字符引起,看起来鼠标指针绑定后缺少一个分号:

$('.navlinks img').mouseover(function(){
    $(this).parent().find('img:first').stop().animate({opacity:1}, 1000);
});

IE不支持
transform
属性(仅IE9+)。如果您正在使用IE 9,则可以添加此
-ms transform

.css({
 "-moz-transform" : mrotate, 
 "-webkit-transform" : mrotate,
 "-ms-transform" : mrotate
}); 
对于IE8来说有点复杂。你必须使用旋转矩阵

 // convert to radian first
 var rad = Math.PI/180 * sdegree,
     cos = Math.cos(rad),
     sin = Math.sin(sin); 

'-ms-filter': "progid:DXImageTransform.Microsoft.Matrix(M11="+cos+", M12="+(-sin)+", M21="+sin+", M22="+cos+", SizingMethod='auto expand')";

您在脚本标记上使用的@type属性是什么?@brianary@Shiplu消息:对象不支持此属性或方法。行:50字符:5代码:0..在代码中导航似乎是:var ctx=canvas.getContext('2d');很好地发现,我添加了缺失的分号-不幸的是,它仍然不起作用。为此,我在原来的帖子中添加了更改-没有其他方法可以让它与IE 8和以下版本一起工作吗?再次感谢-现在在每个时钟指针上实现这一点的复杂部分..如果我可以纠缠你在这方面有点帮助,因为我正处于大脑崩溃的边缘!