zoukankan      html  css  js  c++  java
  • javascript 图片淡入淡出效果 实例源代码

    代码说明:把代码粘贴好之后,需要更改html代码中的图片路径,即可执行成功。
    后面还有对js代码的详细说明,希望大家好好消化,好好理解。

    html源代码:
     1 <head>
     2     <title>图片切换</title>
     3     <script type="text/javascript" src="图片切换.js"></script>
     4     <link rel="stylesheet" type="text/css"  href = "图片切换.css">
     5   </head>
     6   <body>
     7     <div id="ad">
     8               <ul>
     9                   <li style="filter:alpha(opacity=100); opacity:1;"><img src="banner/ad_banner1.png" alt="" /></li>
    10                   <li><img src="banner/ad_banner2.png" alt="" /></li>
    11                   <li><img src="banner/ad_banner3.png" alt="" /></li>
    12                </ul>
    13      </div>
    14   </body>

    css源代码:

    1 #ad {width: 942px;height:302px;position:relative; margin:0 auto;}
    2 #ad ul {position: absolute;top: 0;left: 0;}
    3 #ad li {position: absolute; top: 0; left:0;opacity: 0;}

    javascript源代码:

     1 window.onload = function () 
     2 {
     3    jzk.app.Tobanner();
     4 }
     5 
     6 var jzk = {};
     7 
     8 
     9 jzk.tools = {};
    10 jzk.tools.getStyle = function(obj,attr) 
    11 {
    12     if(obj.currentStyle)
    13     {
    14         return obj.currentStyle[attr];
    15     }
    16     else
    17     {
    18         return getComputedStyle(obj,false)[attr];
    19     }
    20 }
    21 
    22 jzk.ui = {};
    23 jzk.ui.fadeIn = function(obj)
    24 {
    25     var iCur = jzk.tools.getStyle(obj,'opacity');
    26     if(iCur==1)
    27     { 
    28         return false; 
    29     }
    30 
    31     var value = 0;
    32     clearInterval(obj.finishtimer);
    33     obj.finishtimer = setInterval(function() {
    34         var ispeed = 5;
    35         if(value == 100)
    36         {
    37            clearInterval(obj.finishtimer);
    38         }
    39         else
    40         {
    41             value = value +ispeed;
    42             obj.style.opacity = value/100;
    43             obj.style.filter = "alpha=('+value+')";
    44         }
    45     }, 30);
    46     
    47 }
    48 jzk.ui.fadeOut = function(obj)
    49 {
    50     var iCur = jzk.tools.getStyle(obj,'opacity');
    51     if(iCur==0)
    52     { 
    53         return false; 
    54     }
    55 
    56     var value =100;
    57     clearInterval(obj.finishtimer);
    58     obj.finishtimer = setInterval(function() {
    59         var ispeed = -5;
    60         if(value == 0)
    61         {
    62            clearInterval(obj.finishtimer);
    63         }
    64         else
    65         {
    66             value = value +ispeed;
    67             obj.style.opacity = value/100;
    68             obj.style.filter = "alpha=('+value+')";
    69         }
    70     }, 30);
    71     
    72 }
    73 
    74 jzk.app = {};
    75 jzk.app.Tobanner=function() 
    76 {
    77     var ad = document.getElementById('ad');
    78     var lists = ad.getElementsByTagName('li');
    79 
    80     var iNow = 0;
    81     var finishtimer = setInterval(showpic,4000);
    82 
    83     function showpic ()
    84     {
    85         if(iNow == lists.length-1)
    86         {
    87             iNow = 0;
    88         }
    89         else
    90         {
    91             iNow ++;
    92         }
    93         for(var i=0;i<lists.length;i++)
    94         {
    95             jzk.ui.fadeOut(lists[i]);
    96         }
    97        jzk.ui.fadeIn(lists[iNow]);
    98     }
    99 }

    对javascript源代码的几大点理解:

    一.我采用分层的理念编写代码,思路清晰,对后期的管理和修改很有帮助:

        1.var jzk ={};定义民命空间;

        2.jzk.tools = {}; 分层第一层,基本应用工具;

        3.jzk.ui = {}; 分层第二层,一些广泛使用的函数包装;

        jzk.app = {}; 分层第三层,直接用于页面调用的应用函数;

    二.jzk.tools层上的函数:

        jzk.tools.getStyle函数用于定义一个可以获取元素属性值得函数;

    三.jzk.ui层上的函数:

         1.jzk.ui.fadeIn函数功能:淡出函数(用来显示图片),在后面的jzk.app层中将会被调用;值得注意的是下面这段代码:       

            var iCur = jzk.tools.getStyle(obj,'opacity');

               if(iCur==1)

               { return false;
               }   

    这段代码是必不可少的,意思解释为:定义变量iCur存储元素的opacity属性值,判断如果为1,也就是完全可见的元素,则返回错误,不执行下面的代码;

          2.jzk.ui.fadeOut函数功能:淡入函数(用来隐藏图片),同样是这样一段代码:

             var iCur = jzk.tools.getStyle(obj,'opacity');
             if(iCur==0)
             {
                return false;
              }

    因为此处是用来隐藏图片,所以先定义变量iCur存储元素的opacity属性,判断如果为0,也就是完全不可见图片,所以就没必要再隐藏,所以返回错误;

    四.jzk.app层上的函数:

           jzk.app.Tobanner函数功能,就是用来页面调用的应用函数,定义一个当前变量,使当前图片显示,其他的图片隐藏,从而达到了淡入淡出的效果。

    五.页面调用:

           页面调用代码实现:

               window.onload = function ()

               {

                   jzk.app.Tobanner();

                }

    直接调用应用层的函数即可。

  • 相关阅读:
    11. Container With Most Water
    9. Palindrome Number
    375. 猜数字大小 II leetcode java
    leetcode 72 编辑距离 JAVA
    73. 矩阵置零 leetcode JAVA
    快速排序 JAVA实现
    63. 不同路径 II leetcode JAVA
    重写(override)与重载(overload)
    62 不同路径 leetcode JAVA
    leetcode 56 合并区间 JAVA
  • 原文地址:https://www.cnblogs.com/jarson-7426/p/3764923.html
Copyright © 2011-2022 走看看