我有非常复杂的算法来在我的HTML5脚本中居中主要div(考虑边栏菜单,广告等),它在IE中不起作用。
我设法将问题缩小到20行javascript:
function scaleToView()
{
$('#header').center();
}
$(function()
{
$.fn.extend({center: function ()
{
pos = 0;
this.css('left', (pos + (($(window).width() - $(this).outerWidth()) / 2) +
$(window).scrollLeft()) + 'px');
return this;
}});
scaleToView();
$( window ).resize(scaleToView);
});
此处可以使用示例jfiddle:http://jsfiddle.net/ZdaRw/6/
适用于Firefox和Chrome,但不适用于IE 11.0.2(确切版本:11.0.9600.16476)。我在IE中使用了调试器,它吐了很多消息Object does not support method: 'center'
(用波兰语)。当我附加调试器时,我发现center
方法定义通过执行$(function()
生效,但在脚本暂停一段时间后获得undefined
更奇怪的是,它有时(很少)实际上在IE中工作,起初我认为这可能是由于某种数据竞争,但最终我能够将问题缩小到上面的代码行。
我做错了什么?
答案 0 :(得分:1)
它确实有效。这是糟糕的小提琴!只需在网址末尾添加show
并在IE中查看
此处链接:http://jsfiddle.net/ZdaRw/6/show/
此外,如果你愿意,你可以改变jQuery的版本,它就像一个魅力。即使你使用较低版本的jQuery,如1.9.1,仍然有效