css指定图片加载顺序

大图片都加载出来了,一些很小的图标背景之类的却总是等到最后才加载。怎么指定图片加载顺序?另外一个,如果我在css里面多次写到background:url(pic/skin... 大图片都加载出来了,一些很小的图标背景之类的却总是等到最后才加载。怎么指定图片加载顺序?
另外一个,如果我在css里面多次写到background:url(pic/skin2.png) ;会不会出现多次请求?
我已经把需要优先加载的css代码写在靠前的位置,但是还是不行
展开
 我来答
百度网友2571d37bb
2015-08-29 · 知道合伙人软件行家
百度网友2571d37bb
知道合伙人软件行家
采纳数:1971 获赞数:7905
前端工程师

向TA提问 私信TA
展开全部

CSS不能指定图片加载顺序,应该问的JS指定图片加载顺序。

javascript监听一个图片是否加载完毕 如果加载完成再加载下一张,不是一次性从服务器加载 减少服务器压力, 
可用到的地方:比如制作类似google地图的应用,可以使小图一张一张的加载。

function Load_pic(arr){    //这里接受的图片的所以链接数组。
  this.loop_f=function(i,o_file,len,f,obj){
      if(i<len-1){
          i=i+1;
          f(i,o_file,len,obj);
         }
   }; 
   this.creat_pic=function(i,o_file,len,obj){
         var f=arguments.callee,
        doc=document,
        image = doc.createElement("img");    
        image.src =o_file[i];
        i<len?doc.getElementsByTagName("body")[0].appendChild(image):'';
        if(navigator.userAgent.indexOf("MSIE")>0){   //是IE浏览器
               if($.browser.version==6.0 || $.browser.version==9.0){ //IE兼容处理。       
                   image.onreadystatechange = function () { 
                       if (image.readyState == "complete"){ //image 加载完后,函数回调。
            obj.loop_f(i,o_file,len,f,obj);
                       } 
                   }; 
               }else{  //非IE7和IE9的IE浏览器。
                   ie7imagetime = window.setInterval(function(){ 
                       var rs = image.readyState; 
                       if(rs=="complete"){ 
                           window.clearInterval(ie7imagetime); 
            obj.loop_f(i,o_file,len,f,obj);
                       }else{ 
                           return; 
                       } 
                   },200); 
               } 
           }else{  //非IE浏览器,直接用onload事件
               image.onload = function () { 
                   if (image.complete == true){ 
            obj.loop_f(i,o_file,len,f,obj);
                    } 
               }; 
        }
    }; 
     if(arr.constructor===Array){  //函数开始执行的地方。
      var len=arr.length,
           i=0;
     i<len?this.creat_pic(i,arr,len,this):'';
          
    };
 }
百度网友dde64d5e7
推荐于2018-05-18 · TA获得超过2310个赞
知道小有建树答主
回答量:1430
采纳率:66%
帮助的人:1418万
展开全部
  1. 页面图片加载的顺序大都是,页内img标签→背景图
    如果你需要背景图优先加载的话,可以在head标签内写上js预加载,如:

    (new Image).src ="pic/skin2.png";

  2. 多次重复写的话,在某些浏览器中会出现多次请求,不利于页面性能,建议都写在一起;

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
圣鸾OJ
2015-10-06 · TA获得超过1629个赞
知道小有建树答主
回答量:1136
采纳率:96%
帮助的人:114万
展开全部
在页面内嵌CSS将主体隐藏,在CSS中定义样式将主体显示,这样CSS加载后就可应用到主体部分了.
<html>
<head>
<link rel="stylesheet" type="text/css" href="remote.css">
</head>
<body>
<img id="loading" src="loading.gif">
<div id="body" style="display:none;">
你的页面主体部分
</div>
</body>
</html>

remote.css
#loading {display: none!important;}
#body {display: block!important;}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
mezy
2013-07-30 · TA获得超过721个赞
知道小有建树答主
回答量:118
采纳率:0%
帮助的人:106万
展开全部
指定加载顺序得用js实现,但是你图片要是太多的话也很麻烦,给你推荐个其他的方法吧

同学,你应该去看看CSS Sprites技术,就是把N多个小图片集合到一张大的图片上
然后根据图片的坐标选用你需要的图片作为背景显示出来
这样能够减少你的网站的HTTP请求数量,加快网页的加载的速度,不过也有一些缺点,但总的来说利大于弊,看你自己需求选择吧
资料可以看看百度百科的介绍
http://baike.baidu.com/view/3037553.htm
追问
我知道css精灵  但是总有些图片你是必须单独出来的。例如背景图片(xy重复)。
我只有2张图片要求优先加载,这两个图片加起来也就5k左右
追答

如果是那样的话,你可以把这几张图片单独提取出来,然后写在html  <head>的<style>里,这样就可以按照顺序加载了,例:

<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>min-width</title>
<style>
.wrap {
background: url(images/1111111111.png);/*在style里边优先加载你需要的背景图片一系列*/
}
.aaa {
background: url(images/aaaaaaa.png);/*在style里边优先加载你需要的背景图片一系列*/
}
</style>
<link rel="stylesheet" href="1111.css">/*这里是你正常加载的css*/
<link rel="stylesheet" href="2222.css">/*这里是你正常加载的css*/
</head>
<body>
<p>
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
</p>
</body>
</html>
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式