当父级被隐藏并读取子项的css时,防止下载背景图像

Prevent downloading background-image when parent is hidden and css of child is read

本文关键字:css 图像 背景 下载 隐藏 读取      更新时间:2023-09-26

正如我们已经知道的那样,为了防止加载元素background-image它的父元素必须使用 display:none 隐藏。

这种方法在FF和Chrome上效果很好。

在Chrome上,当您使用jquery .css()getComputedStyle)方法读取任何.childdiv css属性时,图像将开始下载。元素仍然处于隐藏状态,因此不应该隐藏。火狐浏览器没有下载。

我也在 Safari 5.1 上测试过它,它是一样的,它开始下载图像,所以可能是 webkit 浏览器行为:(

我创建了测试用例:http://jsfiddle.net/zxLyttc3/1/embedded/result/

  1. 在 Chrome 中打开它
  2. 打开开发人员工具并转到网络选项卡,
  3. 重新加载页面,如您所见,没有example_image.png文件,因此未加载背景图像
  4. 单击一个按钮,它将简单地从.child元素中读取 CSS 宽度值
  5. example_image.png开始下载

有没有人知道任何(黑客)解决方案来读取 css 值但阻止下载background-image

我想将background-image存储在其他 css 属性中,例如 counter-reset,请参阅此处"自定义 css-properties-why-not",但每次当我的 css 类更改以更新元素background-image样式时,它都需要运行 js 循环。

您可以在使.parent可见的同时动态设置background-image