你可以为此使用 SASS mixins、函数和列表。首先,您创建一个 mixin background-image
,它将添加一个background-image
属性并将图像附加到 SASS 列表中preload-images
。
/* '$img-path' is in your case 'img01.png' or 'img02.png' */
@mixin background-image($img-path) {
background-image: url($img-path);
$tmp: preload-image($img-path);
}
然后定义函数preload-image
和 list $preloaded-images
。该函数附加url($img-path)
到$preloaded-images
列表中。
/* Preloaded images */
$preloaded-images: null;
@function preload-image($image-path) {
$preloaded-images: $preloaded-images url($image-url);
@return $preloaded-images;
}
每次你想使用背景图片时,你都会使用background-image
mixin。然后,在整个 CSS 文件的末尾添加body:after
表达式。这很重要,因为您需要在输出body:after
表达式之前将所有预加载的图像添加到列表中。所以
//use images
li.one { @include background-image("img01.png"); }
li.two { @include background-image("img02.png"); }
//preload images
body:after{
display: none;
content: $preloaded-images;
}
结论:SASS 作为一种语言在某些方面受到限制,但仍然足够强大,可以实现这些美好的事物!