我有这个图库用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中工作正常。