2011-09-25 124 views
1

我正在制作包含图片库的网页。我已经写了一个JavaScript函数来显示一个更大版本的图像,当你点击缩图。该函数的功能是改变隐藏的div内img标签的搜索路径。然后,它会更改div的顶部和左侧值,以将div放置在屏幕中央,然后根据图像大小调整div的顶部和左侧边距,以将其中间放在屏幕中央。使用javascript更改div的边距

这是失败的地方。或者真的,它有效,但不是当它应该。如果我第一次打开图片,它与中心的偏移量是错误的(上边和左边的负边距是错误的)。如果我再打开它,它就会起作用!如果我用不同的宽度和高度打开图像,我会得到同样的错误。

这是用于设置页边距代码:

imagebox.style.marginLeft=(image.width/-2)+'px'; 
    imagebox.style.marginTop=(image.height/-2)+'px'; 

这个作品在谷歌浏览器就好了,并在Safari,但在其他浏览器中它并不总是使用此代码,有时给它双重打电话。

最后,我当然将div的可见性设置为可见。

+0

第一次打开图像以获取错误。然后放大和缩小页面(Ctrl +鼠标滚轮,或者Ctrl +和Ctrl + - )。如果边缘“神奇地”修复了自己,那么这是一个常见的重绘错误。如果不是,那么我们可以进一步查看代码错误。 –

回答

-1

尝试使用jQuery函数.css().width()/.height()。几乎每个浏览器都可以正常工作。

+0

我这样做,它并没有解决我的问题(但它使我的代码更简单,但使用jQuery)。但是,我在微缩图像上使用悬停事件解决此问题,以便在点击事件之前移动较大图像的容器。 – oscar93