我正在编写一个灯箱图片库,并为正确的图片定位而苦苦挣扎。
单击图像时,会出现灯箱。这是一个用 JS 生成的全新对象。通过设置边距,我将其移动到屏幕中间(使用 z-index)。
但是这些操作是在图像有时间加载之前执行的。所以 JS 没有所需的信息clientWidth
,而是clientHeight
使用0
。这会影响图像的左上角(在加载之前也与其他角相同)位于屏幕中间。当图像开始加载时,它将扩展到右下角。
如何在屏幕上正确定位图像?
PS:没有连接到 lightbox/lightbox2 库。
PPS:相关代码:
JS:
function lightbox(res, dsc) {
// lbimg: Lightbox-Image
var lbimg = document.createElement("img");
lbimg.src = res;
lbimg.id = "lbimg";
document.body.insertBefore(lbimg, document.body.firstChild);
lbimg.style.marginTop = "-" + Math.floor(lbimg.clientHeight/2.) + "px";
lbimg.style.marginLeft = "-" + Math.floor(lbimg.clientWidth/2.) + "px";
}
CSS:
#lbimg {
max-width: 70%;
max-height: 80%;
position: absolute;
left: 50%;
top: 50%;
border: 10px solid #fff;
z-index : 10;
}
HTML(仅显示微型图像):
<div class="list">
<div><a onclick="lightbox('image.JPG', ''); "><img class="mini" src="image.JPG_MINI.jpg" /></a></div>
<!--other images are defined analogous-->
</div>