我在页面上有一些复杂的div结构,我想切换一些图片(悬停),但我不能直接设置悬停与CSS,因为我想悬停在另一个透明图像后面的图像悬停。因此我在顶部创建了透明叠加层。当叠加层悬停时,指定div的背景被切换。如何用JavaScript正确切换图像?
HTML:
<div id="image"></div>
<div id="overlay"></div>
CSS:
#image {
position: absolute;
width: 300px;
height: 300px;
background: url(myImage.jpg);
}
#overlay {
position: absolute;
width: 300px;
height: 300px;
}
,这里是jQuery的做切换:
$(function() {
$("#overlay").hover(function() {
$("#image").css({
"background": "url(myNewImage.jpg)"
});
}, function() {
$("#image").css({
"background": "url(myImage.jpg)"
});
});
});
它切换图像没有问题。问题是,在图像切换一段时间后(小于秒),您可以看到空白背景(当#image div没有填充任何图像时)会有小的延迟。
另一方面,当你使用普通的CSS而没有jQuery来切换像这样的图像(在这种情况下 不可能),那么就没有这种延迟。
所以,使用jQuery,你会如何防止发生这种延迟?或者有更好的方法来解决这个问题吗?
这就是我的想法,但不确定。谢谢。 –
@MatúšDúbrava我建议执行预加载是在脚本之前在隐藏div' display:none'中获取这些图像。这将确保在从服务器完全下载图像之前脚本不会准备好。 – SaidbakR