zoukankan      html  css  js  c++  java
  • [t]仿FLASH的图片轮换效果

    需要运用运动框架move.js,
    核心思路和选项卡相似,
    下面就是具体实现方法:

    html

     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>仿FLASH的图片轮换效果 —— www.miaov.com 妙味课堂</title>
     6         <link rel="stylesheet" type="text/css" href="miao_style.css">
     7         <script type="text/javascript" src="../move.js">
     8         </script>
     9     </head>
    10     <body>
    11         <div id="playimages" class="play">
    12             <ul class="big_pic">
    13                 <div class="prev">
    14                 </div>
    15                 <div class="next">
    16                 </div>
    17                 <div class="text">
    18                     加载图片说明……
    19                 </div>
    20                 <div class="length">
    21                     计算图片数量……
    22                 </div>
    23                 <a class="mark_left" href="javascript:;"></a>
    24                 <a class="mark_right" href="javascript:;"></a>
    25                 <div class="bg">
    26                 </div>
    27                 <li style="z-index:1;">
    28                     <img src="images/1.jpg" />
    29                 </li>
    30                 <li>
    31                     <img src="images/2.jpg" />
    32                 </li>
    33                 <li>
    34                     <img src="images/3.jpg" />
    35                 </li>
    36                 <li>
    37                     <img src="images/4.jpg" />
    38                 </li>
    39                 <li>
    40                     <img src="images/5.jpg" />
    41                 </li>
    42                 <li>
    43                     <img src="images/6.jpg" />
    44                 </li>
    45             </ul>
    46             <div class="small_pic">
    47                 <ul style="390px;">
    48                     <li style="filter: 100; opacity: 1;">
    49                         <img src="images/1.jpg" />
    50                     </li>
    51                     <li>
    52                         <img src="images/2.jpg" />
    53                     </li>
    54                     <li>
    55                         <img src="images/3.jpg" />
    56                     </li>
    57                     <li>
    58                         <img src="images/4.jpg" />
    59                     </li>
    60                     <li>
    61                         <img src="images/5.jpg" />
    62                     </li>
    63                     <li>
    64                         <img src="images/6.jpg" />
    65                     </li>
    66                 </ul>
    67             </div>
    68         </div>
    69     </body>
    70 </html>

    CSS

     1 body { background: #666; } ul { padding: 0; margin: 0; } li { list-style: none; } img { border: 0; }
     2 
     3 .play { width: 400px; height: 430px; margin: 50px auto 0; background: #999; font: 12px Arial; }
     4 
     5 .big_pic { width: 400px; height: 320px; overflow: hidden; border-bottom: 1px solid #ccc; background: #222; position: relative; }
     6 .big_pic li { width: 400px; height: 320px; overflow: hidden; position: absolute; top: 0; left: 0; z-index: 0; background: url(images/loading.gif) no-repeat center center; }
     7 
     8 .mark_left { width: 200px; height: 320px; position: absolute; left: 0; top: 0; background: red; filter: alpha(opacity:0); opacity: 0; z-index:3000; }
     9 .mark_right { width: 200px; height: 320px; position: absolute; left: 200px; top: 0; background: green; filter: alpha(opacity:0); opacity: 0; z-index:3000; }
    10 .big_pic .prev { width: 60px; height: 60px; background: url(images/btn.gif) no-repeat; position: absolute; top: 130px; left: 10px; z-index: 3001; filter:alpha(opacity:0); opacity:0; cursor: pointer; }
    11 .big_pic .next { width: 60px; height: 60px; background: url(images/btn.gif) no-repeat 0 -60px; position: absolute; top: 130px; right: 10px; z-index: 3001; filter:alpha(opacity:0); opacity:0; cursor: pointer; }
    12 
    13 .big_pic .text { position: absolute; left: 10px; top: 302px; z-index: 3000; color: #ccc; }
    14 .big_pic .length { position: absolute; right: 10px; bottom: 4px; z-index: 3000; color: #ccc; }
    15 .big_pic .bg { width: 400px; height: 25px; background: #000; filter: alpha(opacity=60); opacity: 0.6; position: absolute; z-index: 2999; bottom: 0; left: 0; }
    16 .small_pic { width: 380px; height: 94px; position: relative; top: 7px; left: 10px; overflow: hidden; }
    17 .small_pic ul { height: 94px; position: absolute; top: 0; left: 0; }
    18 .small_pic li { width: 120px; height: 94px; float: left; padding-right: 10px; background: url(images/loading.gif) no-repeat center center; cursor: pointer; filter: alpha(opacity=60); opacity: 0.6; }
    19 .small_pic img { width: 120px; height: 94px; }

    JS

     1  function getByClass(obj, sClass){
     2                 var aEle = obj.getElementsByTagName('*');
     3                 var result = [];
     4                 var i = 0;
     5                 
     6                 for (i = 0; i < aEle.length; i++) {
     7                     if (aEle[i].className == sClass) {
     8                         result.push(aEle[i]);
     9                     }
    10                 }
    11                 return result;
    12             }
    13             
    14             window.onload = function(){
    15                 var oDiv = document.getElementById('playimages');
    16                 
    17                 var oMarkLeft = getByClass(oDiv, 'mark_left')[0];
    18                 var oMarkRight = getByClass(oDiv, 'mark_right')[0];
    19                 var oBtnPrev = getByClass(oDiv, 'prev')[0];
    20                 var oBtnNext = getByClass(oDiv, 'next')[0];
    21                 
    22                 var oUlSmall = getByClass(oDiv, 'small_pic')[0].getElementsByTagName('ul')[0];
    23                 var aLiBtn = oUlSmall.getElementsByTagName('li');
    24                 var oUlBig = getByClass(oDiv, 'big_pic')[0];
    25                 var aLiPic = oUlBig.getElementsByTagName('li');
    26                 var iMinZindex = 2;
    27                 var iNow = 0;
    28                 var i = 0;
    29                 
    30                 oUlSmall.style.width = aLiBtn[0].offsetWidth * aLiBtn.length + 'px';
    31                 
    32                 oBtnPrev.onmouseover = oMarkLeft.onmouseover = function(){
    33                     startMove(oBtnPrev, 'opacity', 100);
    34                 };
    35                 oBtnPrev.onmouseout = oMarkLeft.onmouseout = function(){
    36                     startMove(oBtnPrev, 'opacity', 0);
    37                 };
    38                 
    39                 oUlSmall.style.width = aLiBtn[0].offsetWidth * aLiBtn.length + 'px';
    40                 
    41                 oBtnNext.onmouseover = oMarkRight.onmouseover = function(){
    42                     startMove(oBtnNext, 'opacity', 100);
    43                 };
    44                 oBtnNext.onmouseout = oMarkRight.onmouseout = function(){
    45                     startMove(oBtnNext, 'opacity', 0);
    46                 };
    47                 
    48                 for (var i = 0; i < aLiBtn.length; i++) {
    49                     aLiBtn[i].index = i;
    50                     aLiBtn[i].onclick = function(){
    51                         if (this.index != iNow) {
    52                             iNow = this.index;
    53                             tab();
    54                         }
    55                     };
    56                 };
    57                 
    58                 oBtnPrev.onclick = function(){
    59                     iNow--;
    60                     if (iNow == -1) {
    61                         iNow = aLiPic.length - 1;
    62                     }
    63                     tab();
    64                 }
    65                 oBtnNext.onclick = function(){
    66                     iNow++;
    67                     if (iNow == aLiPic.length) {
    68                         iNow = 0;
    69                     }
    70                     tab();
    71                 }
    72                 
    73                 function tab(){
    74                     for (var i = 0; i < aLiBtn.length; i++) {
    75                         startMove(aLiBtn[i], 'opacity', 60);
    76                     }
    77                     startMove(aLiBtn[iNow], 'opacity', 100);
    78                     
    79                     aLiPic[iNow].style.zIndex = iMinZindex++;
    80                     aLiPic[iNow].style.height = 0;
    81                     startMove(aLiPic[iNow], 'height', oUlBig.offsetHeight);
    82                     
    83                     if (iNow == 0) {
    84                         startMove(oUlSmall, 'left', 0);
    85                     }
    86                     else 
    87                         if (iNow == aLiBtn.length - 1) {
    88                             startMove(oUlSmall, 'left', -aLiBtn[0].offsetWidth * (iNow - 2));
    89                         }
    90                         else {
    91                             startMove(oUlSmall, 'left', -aLiBtn[0].offsetWidth * (iNow - 1));
    92                         }
    93                 }
    94             };
  • 相关阅读:
    tslib編译和安装
    Web服务器的工作原理
    激励一生的六个经典故事
    VS2010中创建安装项目
    vue中img标签图片 加载时 与 加载失败 的处理方法
    Vue函数式组件的应用
    深入浅出Object.defineProperty()
    重学Git(一)
    backgroundblendmode
    箭头流程图前端实现
  • 原文地址:https://www.cnblogs.com/niubenbit/p/2778542.html
Copyright © 2011-2022 走看看