#1 楼
1)使用CSS Sprites(这是首选方法)。2)将图像加载到隐藏的div中。将图像放在div中,然后将div的CSS设置为
display: none;
以将其隐藏。3)使用CSS加载图像:
#preloadedImages
{
width: 0px;
height: 0px;
display: inline;
background-image: url(path/to/image1.png);
background-image: url(path/to/image2.png);
background-image: url(path/to/image3.png);
background-image: url(path/to/image4.png);
background-image: url();
}
4)使用此JavaScript
<script language="JavaScript">
function preloader()
{
// counter
var i = 0;
// create object
imageObj = new Image();
// set image list
images = new Array();
images[0]="image1.jpg"
images[1]="image2.jpg"
images[2]="image3.jpg"
images[3]="image4.jpg"
// start preloading
for(i=0; i<=3; i++)
{
imageObj.src=images[i];
}
}
</script>
#2 楼
我不太喜欢javascript解决方案-它很杂乱,难以维护,并且当禁用JS时当然会完全失败。现代的解决方案是使用CSS Sprites-试试吧,相信我,您会想知道为什么以前从未这样做过;)
#3 楼
我找到了有关如何使用纯CSS预加载图像的链接:http://www.thecssninja.com/css/even-better-image-preloading-with-css2
当我需要在悬停时更改不同的背景图像时,它对我有用。
评论
它可以很好地与Safari和Chrome配合使用,但在2020年仍无法在Firefox上运行。
– Chewie The Chorkie
20 Mar 12 '20 at 20:11
#4 楼
将此内容添加到CSS上方:<script type="text/javascript">
var images = ['img1.jpg', 'img2.jpg'];
for(var i = 0, len = images.length; i < len; i++) {
new Image().src = images[i];
}
</script>
<link rel="stylesheet" type="text/css" href="your_css_file.css" />
如果您选择精灵路线,因为danp建议您在需要之前加载精灵仍然存在问题。那就是我爱精灵;为了轻松制作它们,我使用了Steve Souders的Spriteme工具:
评论
页面加载后是否可以加载它们?这样用户在光标上看不到加载圆圈吗?一种方式是拥有一个使用JavaScript的隐藏框架来延迟要显示的隐藏框架,例如在我的问题stackoverflow.com/questions/13437091/…中,但是有一种用于延迟而不在该光标上显示加载圆圈的首选方法?
–反对
13年1月4日在17:12
没关系,我发现了这个perishablepress.com/3-ways-preload-images-css-javascript-ajax,它可以完美地工作并具有时间延迟。
–反对
2013年1月4日19:27