【发布时间】:2023-03-18 02:27:01
【问题描述】:
我有一个带有一些 img 链接的页面。当图像处于hover 状态时,我更改了页面内 div 的背景。 javascript代码如下:
function hover(element) {
if(element.id=="first"){
element.setAttribute('src', './images/first_active_2.png');
back.style.backgroundImage = 'url(./images/1.png)';
text.src = './images/text_first_active.png';
}
if(element.id=="second"){
element.setAttribute('src', './images/second_active_2.png');
back.style.backgroundImage = 'url(./images/3.png)';
text.src = './images/text_second_active.png';
}
}
function unhover(element) {
if(element.id=="first"){
element.setAttribute('src', './images/first_inactive_2.png');
text.src = './images/text_first_inactive.png';
}
if(element.id=="second"){
element.setAttribute('src', './images/second_inactive_2.png');
text.src = './images/text_second_inactive.png';
}
}
和html代码:
<div id="back"/>
<a>
<img id="first" src="images/first_inactive_2.png" onmouseover="hover(this);" onmouseout="unhover(this);" />
</a>
<a>
<img id="second" src="images/second_inactive_2.png" onmouseover="hover(this);" onmouseout="unhover(this);"/>
</a>
一切都很好,但有时背景图像会闪烁。我想我必须预加载两个images/1.png,images/2.png,但我不知道如何正确执行。有没有正确的方法让图像不闪烁?
【问题讨论】:
-
这个问题已经被问过好几次了。参见,例如,stackoverflow.com/q/7673843/1679849
-
更好用CSS Sprites
标签: javascript html css flicker