正如标题所说。我有两个动画时钟,它们根本就没有在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;
};
上面的代码是我在网上花了很多时间试图让兴奋剂在IE中正常工作后才能在网上找到的
如果有人能够纠正我的方式错误,那将非常感激。
仅编辑时钟动画问题
答案 0 :(得分:1)
只讨论IE,它总是只是由于缺少某些内容或其他字符造成的,它看起来在鼠标悬停绑定后缺少一个分号:
$('.navlinks img').mouseover(function(){
$(this).parent().find('img:first').stop().animate({opacity:1}, 1000);
});
答案 1 :(得分:1)
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')";