javascript - Html/JavaScript 预加载图像

标签 javascript html css flicker

<分区>

我有一个带有一些 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.pngimages/2.png,但我不知道如何正确地进行。有没有正确的方法让图像不闪烁?

最佳答案

var img = new Image(); img.src = "/path/to/image.jpg";

这可能在某处的 window.load 或 dom:ready 事件中,这样您就可以预加载图像。

关于javascript - Html/JavaScript 预加载图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21109287/

上一篇:jquery - 悬停时缓慢显示

下一篇:css - 为什么 Z-index 在 Google Chrome 中总是被解释为高于一切?

相关文章:

javascript - 选择元素未附加 addEventListener

javascript - 变量未转换为选择器 - JQuery

html - 展开/折叠图像

php - 在 image.php 中加入 CSS 的条件语句

html - 添加图像,仅在悬停时,在 [already hover] 状态之上

javascript - Lodash 从 bool 属性等于 true 的对象数组中检索项目的索引

javascript - Rails 超薄模板 : Uncaught SyntaxError: Unexpected token if

javascript - 如何通过验证添加/删除行

jquery - FullPage JS - 固定标题 z-index 隐藏部分内容

javascript - 具有文件名路径的 HTML5 文件 API