图片onload上的javascript marginLeft无法在Chrome中运行

时间:2013-05-15 03:57:44

标签: javascript html css image google-chrome

我有这个图库用javascript调整图像大小以保持原始宽高比。 关于文档结构:考虑到这个特定对象的样式表如下:

 #ThePicture {position:absolute;left:50%;height:100%;max-width:100%;}

然后PHP构建菜单的图像列表,最近的一个设置为#ThePicture 这是用以下javascript操作的

 function KeepRatio() {
 var height = document.getElementById('ThePicture').height;
 var width = document.getElementById('ThePicture').width;
 var origHeight = document.getElementById('ThePicture').naturalHeight;
 var origWidth = document.getElementById('ThePicture').naturalWidth;
 var ratio = origWidth / origHeight;
 document.getElementById('ThePicture').width = height * ratio;
 document.getElementById('ThePicture').style.marginLeft = - width/2;
 }

我在window.onload的实例中调用此函数一次,然后在选择要查看的新图像的每个实例上调用此函数,因此在...ThePicture').onload

现在我的问题只出现在Chrome中:首先没有任何图像设置为ThePicture(几乎可以肯定是由Javascript函数制作的,因为初始图像在PHP构建整个页面后就位了。),在FIRST上单击菜单中选择新图像,没有任何反应,在第二次点击图像显示在其预期位置之外,并在第三次点击时,计算负边距,将图像移动到其位置。我的页面在Opera和Mozilla中工作正常。

0 个答案:

没有答案