我使用图像选择器在服务器上显示图像。 我将它与模态弹出框示例相结合。
在文档就绪时,我从php脚本中获取选择器的内容。 因此,对于我服务器上的文件夹中的每个图像,它只是一个。
这一切在我测试的所有浏览器中都能正常工作,只要我改变了 对话框通过按钮单击显示要阻止的样式。 如果我在加载内容后以编程方式更改图像 在Chrome上无法显示。
我用它来显示弹出窗口:
$('#myModal').css("display", "block");
在FireFox中它可以工作,但在Chrome中我只是获得了边框。 查看调试器中的网络选项卡,我可以看到图像 已加载。对样式进行任何可见的更改都会显示图像。
这是因为我想,在图像加载或类似之前,Chrome不会渲染。但是我该怎么做才能解决这个问题?
我添加了使用相同对话框上传文件的功能,并希望在上传新图像后立即更新图像选择器。 我在这里得到了同样的问题,首先描述的重现这种方法的方法更简单,更快捷。
答案 0 :(得分:1)
使用imagesloaded库和强制重绘来解决此问题。
$('.image_picker_selector').imagesLoaded(function () {
document.getElementById('modalImgSelector').style.display = "none";
document.getElementById('modalImgSelector').offsetHeight; //Only ref needed
document.getElementById('modalImgSelector').style.display = "block";
});
这会在加载所有图像时强制重绘。 它可能不是最好的解决方案,但它可以在不显示任何闪烁或任何东西的情况下工作。