• 图片预加载


    图片预加载功能

    图片预加载技术简介---这是迅雷官网的源代码的一句,在img里面有一个src属性,这里放的是代替的图片,大小为1px*1px,其实就相当于是没有这个图片,另外的一个_src才是真实的图片地址(自定义属性)。当鼠标向下滚动时,加载真实的图片,利用Js里的onscroll事件判断。

    1 <img alt="花开半夏" src="http://images.movie.xunlei.com/img_default.gif" _src="http://img2.kankan.kanimg.com/gallery2/block/2013/12/03/f2163d024767a0a8bf39bb2dbb56e37b.jpg">

     图片预加载策略:预判加载(预判前一张/后一张图片)、延迟加载(先加载HTML,然后再加载页面图片)

    onload和onerror判断图片加载情况:

     1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
     2 <html xmlns="http://www.w3.org/1999/xhtml">
     3 <head>
     4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     5 <title>图片预加载</title>
     6 <script>
     7 window.onload=function ()
     8 {
     9     var oImg=new Image();
    10     
    11     oImg.onload=function ()
    12     {
    13         alert('图片预加载完成');
    14     };
    15     oImg.onerror=function ()
    16     {
    17         alert('失败');
    18     };
    19     oImg.src='http://pic25.nipic.com/20121126/668573_145010549116_2.jpg';
    20 };
    21 </script>
    22 </head>
    23 
    24 <body>
    25 <img width="400" height="300" src="http://www.duose.com/p/2007/0405/46516_046875.jpg" onmouseover="this.src='http://pic25.nipic.com/20121126/668573_145010549116_2.jpg';" onmouseout="this.src='http://www.duose.com/p/2007/0405/46516_046875.jpg';" />
    26 </body>
    27 </html>

     Mac电脑菜单效果

     1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
     2 <html xmlns="http://www.w3.org/1999/xhtml">
     3 <head>
     4 <style>
     5 body {margin:0;}
     6 #div1 {width:100%; position:absolute; bottom:0; text-align:center;}
     7 </style>
     8 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     9 <title>无标题文档</title>
    10 <script>
    11 document.onmousemove=function (ev)
    12 {
    13     var oEvent=ev||event;//事件对象
    14     var oDiv=document.getElementById('div1');
    15     var aImg=document.getElementsByTagName('img');
    16     var aTxt=document.getElementsByTagName('input');
    17     var i=0;
    18     
    19     for(i=0;i<aImg.length;i++)//循环所有的元素
    20     {
    21         var x=aImg[i].offsetLeft+aImg[i].offsetWidth/2;
    22         //offsetLeft正确,计算图片中心点的距离,所以加上本身的一半-------图片中心点距离可视区边缘的距离
    23         var y=aImg[i].offsetTop+oDiv.offsetTop+aImg[i].offsetHeight/2;
    24         //offsetTop计算该元素距离父级元素的距离,所以要加上父级元素的offsetTop
    25         var a=x-oEvent.clientX;
    26         var b=y-oEvent.clientY;
    27         
    28         var dis=Math.sqrt(a*a+b*b);//开平方,或者使用pow(a,2)+pow(b,2)进行开平方
    29         var scale=1-dis/300;//本来是dis/100;但是使用1-dis/100的话,比例更加有效
    30         if(scale<0.5)//如果,比例小于50%;强行的让比例等于50%
    31         {
    32             scale=0.5;
    33         }
    34         aImg[i].width=scale*128;//scale最大可能是1
    35         aTxt[i].value=scale.toFixed(2);//toFixed()函数保留两位小数
    36     }
    37 };
    38 </script>
    39 </head>
    40 
    41 <body>
    42 <input type="text" />
    43 <input type="text" />
    44 <input type="text" />
    45 <input type="text" />
    46 <input type="text" />
    47 <div id="div1">
    48     <img src="images/1.png" width="64" />
    49     <img src="images/2.png" width="64" />
    50     <img src="images/3.png" width="64" />
    51     <img src="images/4.png" width="64" />
    52     <img src="images/5.png" width="64" />
    53 </div>
    54 </body>
    55 </html>
    念念不忘,必有回响。
  • 相关阅读:
    软件工程结对第二次作业
    软件工程结对第一次作业
    软件工程第三次作业
    软件工程第二次作业
    软件工程第一次作业
    实验九:根据材料编程
    实验五:编写、调试具有多个段的程序
    实验4:[bx]和loop的使用
    《汇编语言》实验三——编程、编译、连接、跟踪
    《汇编语言》实验二——用机器指令和汇编指令编程
  • 原文地址:https://www.cnblogs.com/paxster/p/3475454.html
Copyright © 2020-2023  润新知