Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用javascript更改div的边距_Javascript_Css_Html_Image - Fatal编程技术网

使用javascript更改div的边距

使用javascript更改div的边距,javascript,css,html,image,Javascript,Css,Html,Image,我正在制作一个包含图片库的网页。我已经编写了一个javascript函数,当您单击缩影时,可以显示图像的更大版本。该函数的作用是更改隐藏的div中img标记的搜索路径。然后,它更改div的顶部和左侧值,以将div定位在屏幕中心,然后根据图像大小调整div的顶部和左侧边距,以将其中间位置置于屏幕中心 这就是它失败的地方。或者说真的,它起作用了,但不是在它应该起作用的时候。如果我第一次打开一个图像,它从中心的偏移量是错误的,那么顶部和左侧的负边距是错误的。但是,如果我再次打开它,它会工作!如果我打开

我正在制作一个包含图片库的网页。我已经编写了一个javascript函数,当您单击缩影时,可以显示图像的更大版本。该函数的作用是更改隐藏的div中img标记的搜索路径。然后,它更改div的顶部和左侧值,以将div定位在屏幕中心,然后根据图像大小调整div的顶部和左侧边距,以将其中间位置置于屏幕中心

这就是它失败的地方。或者说真的,它起作用了,但不是在它应该起作用的时候。如果我第一次打开一个图像,它从中心的偏移量是错误的,那么顶部和左侧的负边距是错误的。但是,如果我再次打开它,它会工作!如果我打开一个不同宽度和高度的图像,我会得到同样的错误

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

    imagebox.style.marginLeft=(image.width/-2)+'px';
    imagebox.style.marginTop=(image.height/-2)+'px';
这在google chrome和safari中运行良好,但在其他浏览器中它并不总是使用这段代码,有时它会给它一个双重调用


最后,我当然会将div visibility设置为visible。

尝试jQuery函数.css和.width/.height。它们在几乎所有浏览器中都能正常工作。

第一次打开图像时会出现错误。然后放大和缩小页面Ctrl+mousewheel或Ctrl++和Ctrl+-。如果边距神奇地自行修复,那么这是一个常见的重画错误。如果没有,那么我们可以进一步研究代码错误。我这样做并没有解决我的问题,但使用jQuery使我的代码简单了很多。但是,我在微型图像上使用了一个悬停事件来解决这个问题,以便在单击事件之前移动较大图像的容器。