js预加载图片方法汇总


Posted in Javascript onJune 15, 2015

本文实例汇总了js预加载图片方法。分享给大家供大家参考。具体分析如下:

1. 纯CSS:

#preload-01 {
background: url(http://domain.tld/image-01.png) no-repeat -9999px -9999px;
}
#preload-02 {
background: url(http://domain.tld/image-02.png) no-repeat -9999px -9999px;
}
#preload-03 {
background: url(http://domain.tld/image-03.png) no-repeat -9999px -9999px;
}

2. JS+CSS优化:

// better image preloading @ http://perishablepress.com/press/2009/12/28/3-ways-preload-images-css-javascript-ajax/
function preloader() {
  if (document.getElementById) {
    document.getElementById("preload-01").style.background = "url(http://domain.tld/image-01.png) no-repeat -9999px -9999px";
    document.getElementById("preload-02").style.background = "url(http://domain.tld/image-02.png) no-repeat -9999px -9999px";
    document.getElementById("preload-03").style.background = "url(http://domain.tld/image-03.png) no-repeat -9999px -9999px";
  }
}
function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      if (oldonload) {
        oldonload();
      }
      func();
    }
  }
}
addLoadEvent(preloader);

3. JS代码1:

<div class="hidden">
  <script type="text/javascript">
    <!--//--><![CDATA[//><!--
      var images = new Array()
      function preload() {
        for (i = 0; i < preload.arguments.length; i++) {
          images[i] = new Image()
          images[i].src = preload.arguments[i]
        }
      }
      preload(
        "http://domain.tld/gallery/image-001.jpg",
        "http://domain.tld/gallery/image-002.jpg",
        "http://domain.tld/gallery/image-003.jpg"
      )
    //--><!]]>
  </script>
</div>

4. JS代码2:

<div class="hidden">
  <script type="text/javascript">
    <!--//--><![CDATA[//><!--
      if (document.images) {
        img1 = new Image();
        img2 = new Image();
        img3 = new Image();
        img1.src = "http://domain.tld/path/to/image-001.gif";
        img2.src = "http://domain.tld/path/to/image-002.gif";
        img3.src = "http://domain.tld/path/to/image-003.gif";
      }
    //--><!]]>
  </script>
</div>

5. JS代码优化2:

function preloader() {
  if (document.images) {
    var img1 = new Image();
    var img2 = new Image();
    var img3 = new Image();
    img1.src = "http://domain.tld/path/to/image-001.gif";
    img2.src = "http://domain.tld/path/to/image-002.gif";
    img3.src = "http://domain.tld/path/to/image-003.gif";
  }
}
function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      if (oldonload) {
        oldonload();
      }
      func();
    }
  }
}
addLoadEvent(preloader);

6. Ajax代码1:

window.onload = function() {
  setTimeout(function() {
    // XHR to request a JS and a CSS
    var xhr = new XMLHttpRequest();
    xhr.open('GET', 'http://domain.tld/preload.js');
    xhr.send('');
    xhr = new XMLHttpRequest();
    xhr.open('GET', 'http://domain.tld/preload.css');
    xhr.send('');
    // preload image
    new Image().src = "http://domain.tld/preload.png";
  }, 1000);
};

7. Ajax代码2:

window.onload = function() {
  setTimeout(function() {
    // reference to <head>
    var head = document.getElementsByTagName('head')[0];
    // a new CSS
    var css = document.createElement('link');
    css.type = "text/css";
    css.rel = "stylesheet";
    css.href = "http://domain.tld/preload.css";
    // a new JS
    var js = document.createElement("script");
    js.type = "text/javascript";
    js.src = "http://domain.tld/preload.js";
    // preload JS and CSS
    head.appendChild(css);
    head.appendChild(js);
    // preload image
    new Image().src = "http://domain.tld/preload.png";
  }, 1000);
};

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
Javascript技巧之不要用for in语句对数组进行遍历
Oct 20 Javascript
javascript中this做事件参数相关问题解答
Mar 17 Javascript
js中的异常处理try...catch使用介绍
Sep 21 Javascript
详谈javascript中的cookie
Jun 03 Javascript
对于jQuery性能的一些优化建议
Aug 13 Javascript
angularJs中datatable实现代码
Jun 03 Javascript
iscroll.js滚动加载实例详解
Jul 18 Javascript
解决Vue+Element ui开发中碰到的IE问题
Sep 03 Javascript
element上传组件循环引用及简单时间倒计时的实现
Oct 01 Javascript
微信小程序实现两边小中间大的轮播效果的示例代码
Dec 07 Javascript
js中数组常用方法总结(推荐)
Apr 09 Javascript
vue操作dom元素的3种方法示例
Sep 20 Javascript
jquery实现兼容IE8的异步上传文件
Jun 15 #Javascript
JavaScript中使用Math.floor()方法对数字取整
Jun 15 #Javascript
jQuery实现自动调整字体大小的方法
Jun 15 #Javascript
JavaScript中使用指数方法Math.exp()的简介
Jun 15 #Javascript
Jquery简单实现GridView行高亮的方法
Jun 15 #Javascript
简介JavaScript中Math.cos()余弦方法的使用
Jun 15 #Javascript
JavaScript中的Math.atan2()方法使用详解
Jun 15 #Javascript
You might like
浅析虚拟主机服务器php fsockopen函数被禁用的解决办法
2013/08/07 PHP
PHP获取时间排除周六、周日的两个方法
2014/06/30 PHP
PHP+MySQL实现无极限分类栏目的方法
2015/12/23 PHP
PHP获取数组中单列值的方法
2017/06/10 PHP
强悍无比的WEB开发好助手FireBug(Firefox Plugin)
2007/01/16 Javascript
模拟select的代码
2011/10/19 Javascript
javascript 利用Image对象实现的埋点(某处的点击数)统计
2012/12/28 Javascript
jQuery获取(选中)单选,复选框,下拉框中的值
2014/02/21 Javascript
Nodejs使用mysql模块之获得更新和删除影响的行数的方法
2014/03/18 NodeJs
js实现键盘上下左右键选择文字并显示在文本框的方法
2015/05/07 Javascript
实例讲解JavaScript中instanceof运算符的用法
2016/06/08 Javascript
js中class的点击事件没有效果的解决方法
2016/10/13 Javascript
详解nodejs微信公众号开发——4.自动回复各种消息
2017/04/11 NodeJs
Vue中保存用户登录状态实例代码
2017/06/07 Javascript
Javascript 严格模式use strict详解
2017/09/16 Javascript
vue多页面项目中路由使用history模式的方法
2019/09/23 Javascript
Angular单元测试之事件触发的实现
2020/01/20 Javascript
JavaScript如何判断对象有某属性
2020/07/03 Javascript
[00:35]DOTA2上海特级锦标赛 EG战队宣传片
2016/03/04 DOTA
[51:27]LGD vs Liquid 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
Python装饰器使用示例及实际应用例子
2015/03/06 Python
Django中如何防范CSRF跨站点请求伪造攻击的实现
2019/04/28 Python
在Python中过滤Windows文件名中的非法字符方法
2019/06/10 Python
django的分页器Paginator 从django中导入类
2019/07/25 Python
python带参数打包exe及调用方式
2019/12/21 Python
python 爬取英雄联盟皮肤并下载的示例
2020/12/04 Python
芝加哥牛排公司:Chicago Steak Company
2018/10/31 全球购物
12月红领巾广播稿
2014/02/13 职场文书
市场营销专业大学生职业生涯规划文
2014/03/06 职场文书
培训协议书范本
2014/04/22 职场文书
书法大赛策划方案
2014/06/04 职场文书
中层干部培训方案
2014/06/16 职场文书
纪念九一八爱国演讲稿600字
2014/09/14 职场文书
小学生暑假安全保证书
2015/07/13 职场文书
2016年党员读书月活动总结
2016/04/06 职场文书
python解析json数据
2022/04/29 Python