7

我正在开发一个图像预加载器,它将预加载页面上的所有图像。我的方法如下:

onDomReady, 循环遍历$("*")// 当 DOM 准备好时遍历所有元素

  • if $(this).tagName.toLowerCase() == 'img',读取src属性,并预加载该图像
  • 否则$(this).css("background-image") != "none",读取背景图像道具并预加载该图像

我的问题是这种方法不能在 :hover 类上使用,这通常是无论如何都需要预加载的图像。

我想做的是能够在循环遍历所有元素时检查 :hover 伪类的存在,然后检查该类上“背景图像”属性的存在。

我真的很想坚持这种方法,因为它 a) 允许我不必明确指定要预加载的每个图像,并且 b) 处理 CSS 中的相对路径,如阅读“背景图像" 属性给了我相对于页面的路径。

所以,我的问题是:

是否可以使用 jQuery 读取元素的 :hover 伪类上的 CSS 属性?如果没有,有什么建议吗?

谢谢!

4

2 回答 2

3

在加载页面以搜索所有 DOM/CSS 图像时,这将非常密集……在公共站点上这可能不是一个好主意。一个不错的选择是利用图像精灵 ( http://www.google.com/images/nav_logo26.png ) 并使用 CSS 定位它们

于 2010-11-17T18:15:21.943 回答
0

听起来精灵是解决这个问题的正确方法。但是,如果由于某种原因无法实现它们,您要做的是访问 document.styleSheets 集合以搜索带有 :hover 的规则。此页面将帮助您入门。

于 2010-11-17T18:20:17.277 回答