图片预加载 小案例

 1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
 2 "http://www.w3.org/TR/html4/strict.dtd">
 3
 4 <html xmlns="http://www.w3.org/1999/xhtml" lang="en">
 5     <head>
 6         <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 7         <title>9.图片预加载 案例</title>
 8         <meta name="author" content="Administrator" />
 9         <!-- Date: 2014-12-12 -->
10         <style>
11             *{margin:0;padding:0}
12             ul{width:966px; margin:0 auto}
13             li{list-style:none}
14             ul li{float:left;width:300px;height:200px; margin: 10px; border:1px solid #000000; overflow: hidden}
15             ul li img{width:300px;}
16         </style>
17
18         <script>
19             window.onload=function(){
20                  var oUl=document.getElementsByTagName(‘ul‘)[0];
21                  var aLi=oUl.getElementsByTagName(‘li‘);
22                  var aImg=oUl.getElementsByTagName(‘img‘);
23                  var arr=[
24                      ‘9-images/1.jpg‘,‘9-images/2.jpg‘,‘9-images/3.jpg‘,‘9-images/4.jpg‘,‘9-images/5.jpg‘,
25                      ‘9-images/6.jpg‘,‘9-images/7.jpg‘,‘9-images/8.jpg‘,‘9-images/9.jpg‘,‘9-images/10.jpg‘,
26                      ‘9-images/11.jpg‘,‘9-images/12.jpg‘,‘9-images/13.jpg‘,‘9-images/14.jpg‘,‘9-images/15.jpg‘,‘9-images/16.jpg‘
27                  ]
28
29                  //先把所有的图片都下载完
30                  var oImage=new Image();
31                  var iNow=0;
32                  xunlei()
33                  function xunlei(){
34                       oImage.src=arr[iNow];
35                       oImage.onload=function(){
36                           iNow++;
37                           if(iNow<arr.length){
38                               xunlei();
39                               showImg();//加载完了显示出来
40                               window.onscroll=showImg;//滚动的时候显示出来
41                           }
42                           document.title=iNow+‘/‘+arr.length
43                       }
44                  }
45
46                  //showImage  可视区内的显示
47                  function showImg(){
48                      var scrollTop=document.documentElement.scrollTop || document.body.scrollTop;
49                      var iTopn=scrollTop + document.documentElement.clientHeight;
50                         for(var i=0;i<aLi.length;i++){
51                             if( !aLi[i].loaded &&  getTop(aLi[i]) < iTopn ){
52                                 aImg[i].src=arr[i];
53                                 aLi[i].loaded=true;
54                             }
55                         }
56                 }
57             }
58
59             function getTop(obj){
60                 var iTop=0;
61                 if(obj){
62                     iTop+=obj.offsetTop;
63                     obj=obj.parentNode;
64                 }
65                 return iTop
66             }
67
68         </script>
69
70     </head>
71     <body>
72         <ul>
73             <li><img src=‘9-images/loading.gif‘></li>
74             <li><img src=‘9-images/loading.gif‘></li>
75             <li><img src=‘9-images/loading.gif‘></li>
76             <li><img src=‘9-images/loading.gif‘></li>
77             <li><img src=‘9-images/loading.gif‘></li>
78             <li><img src=‘9-images/loading.gif‘></li>
79             <li><img src=‘9-images/loading.gif‘></li>
80             <li><img src=‘9-images/loading.gif‘></li>
81             <li><img src=‘9-images/loading.gif‘></li>
82             <li><img src=‘9-images/loading.gif‘></li>
83             <li><img src=‘9-images/loading.gif‘></li>
84             <li><img src=‘9-images/loading.gif‘></li>
85             <li><img src=‘9-images/loading.gif‘></li>
86             <li><img src=‘9-images/loading.gif‘></li>
87             <li><img src=‘9-images/loading.gif‘></li>
88             <li><img src=‘9-images/loading.gif‘></li>
89         </ul>
90     </body>
91 </html>

时间: 2024-08-05 19:08:18

图片预加载 小案例的相关文章

jquery实现图片预加载

使用jquery实现图片预加载提高页面加载速度和用户体,本就为大家详细分析jquery图片预加载的实现原理. 什么时候使用图片预加载? 如果页面使用了很多不是最初加载便可见的图片,有必要进行预加载: $.preloadImages = function () { for (var i = 0; i < arguments.length; i++) { $('img').attr('src', arguments[i]); }};$.preloadImages('img/hover-on.png'

利用简洁的图片预加载组件提升h5移动页面的用户体验

在做h5移动页面,相信大家一定碰到过页面已经打开,但是里面的图片还未加载出来的情况,这种问题虽然不影响页面的功能,但是不利于用户体验.抛开网速的原因,解决这个问题有多方面的思路:最基本的,要从http请求合并,缓存管理,图片压缩等方面做性能优化:另外就是可以对页面里用到的所有图片做预加载的处理,当用户打开页面的时候不立即显示第一屏,而是先显示资源加载效果,等到加载完毕,再来显示页面的主内容,这样就能解决那个问题.虽然这种加载效果占用了用户的浏览时间,但是我们可以把它做的好看有趣一点,所以也不会影

jQuery图片预加载

jQuery图片预加载早已不是什么新鲜的技术,比如在图片轮播(一些hover事件中)时为了提高图片加载速度,这就需要用到图片预加载技术,这样图片的切换就显得流畅,这样做一定意义上提升了用户体验.我们简单看看实现方法及简单的说明:UI前端框架最新力作!有奖试读 .代码   var img = $('<img />').attr('src', 'imageurl.jpg'); jQuery创建了一个图片元素并设置了它的地址,如果将它放在document ready中处理时,当页面加载时就会告诉浏览

Javascript实现图片预加载【回调函数,多张图片】

使用JS实现一组图片动画效果或者使用HTML5 Canvas渲染一系列图片等案例中,需要图片全部加载完成方可运行动画效果.此时程序中就会涉及多张图片预加载代码.当接二连三的案例中都涉及图片预加载时,就需要考虑把这个功能封装为一个通用方法. (1)下面为JS实现图片预加载方法loadImages(): Js代码   //实现一系列图片的预加载 //参数sources:图片信息关联数组 //参数callback:回调函数——图片预加载完成后立即执行此函数. function loadImages(s

关于图片预加载的思考

引子: 很多时候,我们在写html页面的时候,当需要在页面中加入图片时,我们很自然地把图片直接用<img>标签放在了<body>里面,这本来是没有多大问题的. 但是当图片数量很多的时候,问题就来了.Html页面在被解析器解析的时候要不断去寻找图片的路径去加载图片,而这些图片不一定所以都会被用户通过触发一些类似点击的操作所看到.这样,一些不必要的图片预加载就会拉长了页面的加载时间,带来的用户体验是不好的. 为了解决这个性能问题,有一个比较好的解决问题就是用js去延迟图片预加载.那么具

【JQuery插件】图片预加载

屏幕滚动到图片当前位置加载图片,给需要预加载的图片设置一个data-url的属性即可. ;(function($){ /* 图片预加载 @author liuming @demo $('img[data-url]').ImgLoading(); */ $.fn.ImgLoading=function(){ var aImgs =$(this),/*缓存图片列表*/ $win = $(window), img,imgTop, winH = $win.height(), Timmer=null, i

闭包,jQuery插件的写法:图片预加载

最近做的一些网页,单个网页图片量都比较大,网络不好的情况下,特别卡,这个图片预加载的方法可以牺牲一些时间换来网页的浏览顺畅,还是值得的. //闭包的写法,它内部的变量都是局部的,不会和外部巳有的变量进行冲突 ( function (通过它来接收对象) { } )( 通过它来传递对象 ); //可以使用jQuery的$符号的闭包插件的写法: //写插件的常用方法 $.extentd() (function ($){ //构造函数 function PreLoad(imgs,options){ th

图片预加载与图片懒加载的区别与实现

预加载与懒加载,我们经常经常用到,这些技术不仅仅限于图片加载,我们今天讨论的是图片加载: 一.什么是图片预加载与懒加载: 图片预加载:顾名思义,图片预加载就是在网页全部加载之前,提前加载图片.当用户需要查看时可直接从本地缓存中渲染,以提供给用户更好的体验,减少等待的时间.否则,如果一个页面的内容过于庞大,没有使用预加载技术的页面就会长时间的展现为一片空白,这样浏览者可能以为图片预览慢而没兴趣浏览,把网页关掉,这时,就需要图片预加载.当然这种做法实际上牺牲了服务器的性能换取了更好的用户体验. 图

再谈javascript图片预加载技术

图片预加载技术的典型应用: 如lightbox方式展现照片,无疑需要提前获得大图的尺寸,这样才能居中定位,由于javascript无法获取img文件头数据,必须等待其加载完毕后才能获取真实的大小然后展示出来,所以lightbox显示的图片的速度体验要比直接输出的差很多,而本文说提到的预加载技术主要针对获取图片尺寸. 一段典型的使用预加载获取图片大小的例子: var imgLoad = function (url, callback) {    var img = new Image();