我在頁面上有一些複雜的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