Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery-如何在:hover伪类上获取/读取css属性_Javascript_Jquery_Css_Image Preloader - Fatal编程技术网

Javascript jQuery-如何在:hover伪类上获取/读取css属性

Javascript jQuery-如何在:hover伪类上获取/读取css属性,javascript,jquery,css,image-preloader,Javascript,Jquery,Css,Image Preloader,我正在使用一个图像预加载程序,它将预加载页面上的所有图像。我的做法如下: onDomReady,循环执行$(“*”)//在DOM就绪时遍历所有元素 如果$(this).tagName.toLowerCase()=“img”,则读取src属性,并预加载该图像 如果$(this.css(“背景图像”)!=“无”,读取背景图像道具并预加载该图像 我的问题是这种方法不适用于:hover类,它通常是无论如何都需要预加载的图像 我想做的是,在遍历所有元素时,检查:hover伪类是否存在,然后检查该类上是

我正在使用一个图像预加载程序,它将预加载页面上的所有图像。我的做法如下:

onDomReady,循环执行
$(“*”)
//在DOM就绪时遍历所有元素

  • 如果
    $(this).tagName.toLowerCase()=“img”
    ,则读取
    src
    属性,并预加载该图像
  • 如果
    $(this.css(“背景图像”)!=“无”
    ,读取背景图像道具并预加载该图像
我的问题是这种方法不适用于:hover类,它通常是无论如何都需要预加载的图像

我想做的是,在遍历所有元素时,检查:hover伪类是否存在,然后检查该类上是否存在“background image”属性

我真的希望坚持这种方法,因为它a)允许我不必显式地指定要预加载的每个图像,b)负责CSS中的相对路径,因为读取“background image”属性会为我提供相对于页面的路径

所以,我的问题是:

是否可以使用jQuery读取元素的:hover伪类上的CSS属性?若否,有何建议?


谢谢

加载页面以搜索所有DOM/CSS图像时,这将是非常密集的。。。在公共网站上,这可能不是一个好主意。一个好的替代方法是利用图像精灵()并用CSS定位它们。听起来精灵是解决这个问题的正确方法。但是,如果由于某种原因无法实现它们,那么您需要访问document.styleSheets集合以搜索其中包含:hover的规则。我会让你开始的。

在这种情况下,我无法使用sprites,因为我正在工作的网站是艺术家的作品集,并且非常用户界面密集,对正在显示的图像进行了r/t。我同意这会减慢加载时间,但客户端坚持在用户能够与之交互之前,所有图像都要预加载。感谢您的建议,但在这种情况下它将不起作用:-(这是我试图走的道路,但是,作为一个书呆子,我想构建一些将来可以重用的东西。解析CSS文件的问题是,我们有多个CSS文件驻留在不同的目录中,原因我无法用500个字符解释。因此,我不得不做一些令人麻木的事情获取与页面相关的路径的路径逻辑。使用$(This.css(“背景图像”)解决了此问题方法,因为这是返回相对于页面的图像URL。所以谢谢,但是我的?剩余-我可以阅读:hover道具吗?您是否曾经能够通过JS确定:hover背景图像,或者您最终不得不使用其他解决方法?