Javascript可以在Firefox、Chrome和Safari中使用,但不能在IE中使用
正如标题所说。我有两个动画时钟,它们在IE8中根本不动 是否有什么东西我在这里错过了,这是影响动画在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
(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和以下版本一起工作吗?再次感谢-现在在每个时钟指针上实现这一点的复杂部分..如果我可以纠缠你在这方面有点帮助,因为我正处于大脑崩溃的边缘!