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 相关文章推荐
用正则xmlHttp实现的偷(转)
Jan 22 Javascript
js中各浏览器中鼠标按键值的差异
Apr 07 Javascript
JQuery判断子iframe何时加载完成解决方案
Aug 20 Javascript
浏览器页面区域大小的js获取方法
Sep 21 Javascript
js星星评分效果
Jul 24 Javascript
Jquery实现遮罩层的方法
Jun 08 Javascript
js添加事件的通用方法推荐
May 15 Javascript
简单实现js页面切换功能
Jan 10 Javascript
从零开始学习Node.js系列教程四:多页面实现数学运算的client端和server端示例
Apr 13 Javascript
JS库之ParticlesJS使用简介
Sep 12 Javascript
ExtJs使用自定义插件动态保存表头配置(隐藏或显示)
Sep 25 Javascript
Vue记住滚动条和实现下拉加载的完美方法
Jul 31 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
处理单名多值表单的详解
2013/06/08 PHP
dedecms函数分享之获取某一栏目所有子栏目
2014/05/19 PHP
php禁止某ip或ip地址段访问的方法
2015/02/25 PHP
thinkphp查询,3.X 5.0方法(亲试可行)
2017/06/17 PHP
js 发个判断字符串是否为符合标准的函数
2009/04/27 Javascript
网页前台通过js非法字符过滤代码(骂人的话等等)
2010/05/26 Javascript
javascript定义函数的方法
2010/12/06 Javascript
javascript基础知识大集锦(一) 推荐收藏
2011/01/13 Javascript
jquery 实现窗口的最大化不论什么情况
2013/09/03 Javascript
jQuery+css3实现文字跟随鼠标的上下抖动
2015/07/31 Javascript
jQuery实现图像旋转动画效果
2016/05/29 Javascript
Java中int与integer的区别(基本数据类型与引用数据类型)
2017/02/19 Javascript
浅谈vue2 单页面如何设置网页title
2017/11/08 Javascript
EasyUI 数据表格datagrid列自适应内容宽度的实现
2019/07/18 Javascript
JS Html转义和反转义(html编码和解码)的实现与使用方法总结
2020/03/10 Javascript
python去除空格和换行符的实现方法(推荐)
2017/01/04 Python
详谈Python高阶函数与函数装饰器(推荐)
2017/09/30 Python
用python生成1000个txt文件的方法
2018/10/25 Python
python 处理telnet返回的More,以及get想要的那个参数方法
2019/02/14 Python
python opencv实现图像边缘检测
2019/04/29 Python
Python 列表去重去除空字符的例子
2019/07/20 Python
pandas条件组合筛选和按范围筛选的示例代码
2019/08/26 Python
Python xlrd excel文件操作代码实例
2020/03/10 Python
python 安装impala包步骤
2020/03/28 Python
Mountain Hardwear官网:攀岩服装和户外装备
2019/09/26 全球购物
STP的判定过程
2012/10/01 面试题
生产管理的三大手法
2013/11/11 职场文书
法律专业实习鉴定
2013/12/22 职场文书
修理厂厂长岗位职责
2014/01/30 职场文书
公证书标准格式
2014/04/10 职场文书
房屋转让协议书
2014/04/11 职场文书
慈善晚会策划方案
2014/05/14 职场文书
十佳标兵事迹材料
2014/08/18 职场文书
作风建设年活动总结
2014/08/27 职场文书
2015年秋学期师德师风建设工作总结
2015/10/23 职场文书
深入理解redis中multi与pipeline
2021/06/02 Redis