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 相关文章推荐
Prototype Template对象 学习
Jul 19 Javascript
jqPlot 图表中文API使用文档及源码和在线示例
Feb 07 Javascript
js绑定事件this指向发生改变的问题解决方法
Apr 23 Javascript
将HTML的左右尖括号等转义成实体形式的两种实现方式
May 04 Javascript
javascript自定义的addClass()方法
May 28 Javascript
基于JavaScript实现div层跟随滚动条滑动
Jan 12 Javascript
JS原型对象的创建方法详解
Jun 16 Javascript
详解js中Number()、parseInt()和parseFloat()的区别
Dec 20 Javascript
用原生js做单页应用
Jan 17 Javascript
vue项目中vue-i18n和element-ui国际化开发实现过程
Apr 25 Javascript
学习JS中的DOM节点以及操作
Apr 30 Javascript
原生JavaScript实现拖动校验功能
Sep 29 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生成word文档的三种实现方式
2016/11/14 PHP
TP5框架model常见操作示例小结【增删改查、聚合、时间戳、软删除等】
2020/04/05 PHP
Extjs学习笔记之四 工具栏和菜单
2010/01/07 Javascript
基于jQuery实现文本框缩放以及上下移动功能
2014/11/24 Javascript
node爬取微博的数据的简单封装库nodeweibo使用指南
2015/01/02 Javascript
javascript实现动态加载CSS
2015/01/26 Javascript
JavaScript 异常处理 详解
2015/02/06 Javascript
JS中字符串trim()使用示例
2015/05/26 Javascript
JS如何实现文本框随文本的长度而增长
2015/07/30 Javascript
浅谈JavaScript超时调用和间歇调用
2015/08/30 Javascript
node.js回调函数之阻塞调用与非阻塞调用
2015/11/13 Javascript
有关jquery与DOM节点操作方法和属性记录
2016/04/15 Javascript
AngularJS的ng Http Request与response格式转换方法
2016/11/07 Javascript
zTree 树插件实现全国五级地区点击后加载的示例
2018/02/05 Javascript
浅谈React之状态(State)
2018/09/19 Javascript
vue 中 beforeRouteEnter 死循环的问题
2019/04/23 Javascript
JS获取动态添加元素的方法详解
2019/07/31 Javascript
three.js 利用uv和ThreeBSP制作一个快递柜功能
2020/08/18 Javascript
用Python写的图片蜘蛛人代码
2012/08/27 Python
python开发简易版在线音乐播放器
2017/03/03 Python
Python结合ImageMagick实现多张图片合并为一个pdf文件的方法
2018/04/24 Python
Python使用字典的嵌套功能详解
2019/02/27 Python
Django中间件拦截未登录url实例详解
2019/09/03 Python
浅谈Python类中的self到底是干啥的
2019/11/11 Python
Python如何实现强制数据类型转换
2019/11/22 Python
通过案例解析python鸭子类型相关原理
2020/10/10 Python
python中time包实例详解
2021/02/02 Python
主持人演讲稿范文
2013/12/28 职场文书
关于爱国的演讲稿
2014/05/07 职场文书
技术负责人任命书
2014/06/05 职场文书
开展读书活动总结
2014/06/30 职场文书
2014房屋登记授权委托书
2014/10/13 职场文书
民主生活会批评与自我批评总结
2014/10/17 职场文书
python本地文件服务器实例教程
2021/05/02 Python
详解非极大值抑制算法之Python实现
2021/06/28 Python
JavaScript 中for/of,for/in 的详细介绍
2021/11/17 Javascript