我刚刚注意到在某个阶段 Chrome 已经更新到新版本,我的一些 jQuery 代码不再工作......(jQuery 版本 1.7 - 与 wordpress 捆绑在一起)
这是在幻灯片放映中定位图像(居中)和定位上一个/下一个按钮的基本代码。它在 FF 中工作(不了解 IE - 我尽可能少地看)。它现在在 chrome 中所做的,不是计算盒子的高度减去图像的高度,而是简单地将盒子的高度除以 2。因此,对于一个 4 倍高、图像 2 倍高的盒子,FF 给了我正确的“top: 1x”,而 Chrome 给了我“top:2x”。
奇怪的是,它正确定位了#next 和#prev div...
h = j$('.slide').height();
w = j$('.slide').width();
nph = j$('#next').height();
j$('.slide').each(function(){
thisImg= j$(this).find('img');
var imgH = thisImg.height();
var imgW = thisImg.width();
thisImg.css({'position':'absolute',
'top':(h-imgH)/2,
'left':(w-imgW)/2
} );
}) ;
j$('#next, #prev').css('top',(h-nph)/2);
};
要么我没有正确地做某事,要么 chrome 发生了一些变化(自更新以来,我在另一个站点上丢失了完整的动画)。如果我没有错,Chrome 有什么技巧?
编辑进一步的研究使我认为这是因为我试图在灵活(基于百分比)环境中使用图像。这意味着图像和 div 的样式如下:
div {height:100%;width:100%;}
img {max-height:100%;max-width:100%}
似乎 Firefox 可以进行计算,但 Chrome 不能。“下一个”和“上一个” div 具有已知尺寸(并且位置正确) 有没有办法在加载图像时“捕捉”图像并在应用 max-height 和 max-width 之前找出它的尺寸?
进一步更新我已经设法确认,如果 Chrome 的样式为“max-height”或“max-width”,则 Chrome 无法返回页面上图像的高度值。“outerHeight/Width”方法也不起作用。