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 相关文章推荐
dojo随手记 gird组件引用
Feb 24 Javascript
拖动table标题实现改变td的大小(css+js代码)
Apr 16 Javascript
jQuery 全选/反选以及单击行改变背景色实例
Jul 02 Javascript
javascript模拟地球旋转效果代码实例
Dec 02 Javascript
jquery做的一个简单的屏幕锁定提示框
Mar 26 Javascript
继续学习javascript闭包
Dec 03 Javascript
angular+webpack2实战例子
May 23 Javascript
在vue中使用jointjs的方法
Mar 24 Javascript
vue项目中应用ueditor自定义上传按钮功能
Apr 27 Javascript
node.js微信小程序配置消息推送的实现
Feb 13 Javascript
angular inputNumber指令输入框只能输入数字的实现
Dec 03 Javascript
Jquery属性的获取/设置及样式添加/删除操作技巧分析
Dec 23 jQuery
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 分页函数multi() discuz
2009/06/21 PHP
PHP单例模式与工厂模式详解
2017/08/29 PHP
PhpStorm的使用教程(本地运行PHP+远程开发+快捷键)
2020/03/26 PHP
Jquery倒计时源码分享
2014/05/16 Javascript
js读写json文件实例代码
2014/10/21 Javascript
jQuery实现数字加减效果汇总
2014/12/16 Javascript
jQuery选择器用法实例详解
2015/12/17 Javascript
js实现select选择框效果及美化
2016/08/19 Javascript
分享JavaScript监听全部Ajax请求事件的方法
2016/08/28 Javascript
React Native实现简单的登录功能(推荐)
2016/09/19 Javascript
jstree的简单实例
2016/12/01 Javascript
jquery实现多次上传同一张图片
2017/01/09 Javascript
BootStrap实现文件上传并带有进度条效果
2017/09/11 Javascript
js封装成插件_Canvas统计图插件编写实例
2017/09/12 Javascript
使用vue-cli(vue脚手架)快速搭建项目的方法
2018/05/21 Javascript
vue-cli3搭建项目的详细步骤
2018/12/05 Javascript
微信小程序vant弹窗组件的实现方式
2020/02/21 Javascript
antd 表格列宽自适应方法以及错误处理操作
2020/10/27 Javascript
[36:19]2018DOTA2亚洲邀请赛 小组赛 A组加赛 Newbee vs LGD
2018/04/03 DOTA
python批量读取txt文件为DataFrame的方法
2018/04/03 Python
PyCharm鼠标右键不显示Run unittest的解决方法
2018/11/30 Python
windows下numpy下载与安装图文教程
2019/04/02 Python
python如果快速判断数字奇数偶数
2019/11/13 Python
python 微信好友特征数据分析及可视化
2020/01/07 Python
python GUI库图形界面开发之PyQt5表格控件QTableView详细使用方法与实例
2020/03/01 Python
Selenium+BeautifulSoup+json获取Script标签内的json数据
2020/12/07 Python
英国标志性生活方式品牌:Skinnydip London
2019/12/15 全球购物
澳大利亚排名第一的露营和户外设备在线零售商:Outbax
2020/05/06 全球购物
求职信的要素有哪些呢
2013/12/26 职场文书
政府个人对照检查材料思想汇报
2014/10/08 职场文书
王兆力在市委党的群众路线教育实践活动总结大会上的讲话稿
2014/10/25 职场文书
公司回复函格式
2015/07/14 职场文书
《角的度量》教学反思
2016/02/18 职场文书
MySQL系列之六 用户与授权
2021/07/02 MySQL
MySQL如何使备份得数据保持一致
2022/05/02 MySQL
MySQL实现字段分割一行转多行的示例代码
2022/07/07 MySQL