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 cookies 设置、读取、删除实例代码
Apr 12 Javascript
跨浏览器开发经验总结(三)   警惕“IE依赖综合症”
May 13 Javascript
JQuery自定义事件的应用 JQuery最佳实践
Aug 01 Javascript
Jquery + Ajax调用webService实例代码(asp.net)
Aug 27 Javascript
jQuery下的几个你可能没用过的功能
Aug 29 Javascript
js调试系列 初识控制台
Jun 18 Javascript
js获取当前日期时间及其它日期操作汇总
Mar 08 Javascript
Bootstrap CSS组件之导航条(navbar)
Dec 17 Javascript
js遍历json对象所有key及根据动态key获取值的方法(必看)
Mar 09 Javascript
详解node服务器中打开html文件的两种方法
Sep 18 Javascript
Vue 中 template 有且只能一个 root的原因解析(源码分析)
Apr 11 Javascript
JS实现简易贪吃蛇游戏
Aug 24 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
SONY ICF-SW7600的电路分析
2021/03/02 无线电
PHP中,文件上传
2006/12/06 PHP
php socket方式提交的post详解
2008/07/19 PHP
PHP 递归效率分析
2009/11/24 PHP
让Nginx支持ThinkPHP的URL重写和PATHINFO的方法分享
2011/08/08 PHP
获取PHP警告错误信息的解决方法
2013/06/03 PHP
浅析PHP程序防止ddos,dns,集群服务器攻击的解决办法
2013/06/18 PHP
session在php5.3中的变化 session_is_registered() is deprecated in
2013/11/12 PHP
PHP面向对象程序设计方法实例详解
2016/12/24 PHP
javascript css在IE和Firefox中区别分析
2009/02/18 Javascript
jquery操作复选框checkbox的方法汇总
2015/02/05 Javascript
原生js和jquery实现图片轮播淡入淡出效果
2015/04/23 Javascript
AngularJS基础学习笔记之简单介绍
2015/05/10 Javascript
js实现字符串转日期格式的方法
2015/05/20 Javascript
Position属性之relative用法
2015/12/14 Javascript
JavaScript 正则表达式中global模式的特性
2016/02/25 Javascript
jQuery ztree实现动态树形多选菜单
2016/08/12 Javascript
老生常谈angularjs中的$state.go
2017/04/24 Javascript
详解webpack介绍&amp;安装&amp;常用命令
2017/06/29 Javascript
vue中axios处理http发送请求的示例(Post和get)
2017/10/13 Javascript
介绍Python的Django框架中的静态资源管理器django-pipeline
2015/04/25 Python
python中异常捕获方法详解
2017/03/03 Python
python调用百度语音识别api
2018/08/30 Python
python查找指定文件夹下所有文件并按修改时间倒序排列的方法
2018/10/21 Python
flask框架自定义url转换器操作详解
2020/01/25 Python
python使用paramiko实现ssh的功能详解
2020/03/06 Python
Python实现在线批量美颜功能过程解析
2020/06/10 Python
python中reload重载实例用法
2020/12/15 Python
深入探究HTML5的History API
2015/07/09 HTML / CSS
销售人员职业生涯规划范文
2014/03/01 职场文书
法定代表人授权委托书
2014/04/04 职场文书
学校节能减排倡议书
2014/05/16 职场文书
司机工作自我鉴定
2014/09/19 职场文书
2014年教师批评与自我批评思想汇报
2014/09/20 职场文书
党的群众路线教育实践活动个人对照检查材料(企业)
2014/11/05 职场文书
2015年平安创建工作总结
2015/04/29 职场文书