zoukankan      html  css  js  c++  java
  • JavaScript一个简单的图片切换布局

      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 <style type="text/css">
      7 *{ padding:0; margin:0;}
      8 #slider{ 100%; position:relative; border:0px solid red; height:320px;overflow:hidden; margin:200px auto;}
      9 .pic{ 1000px; height:320px; position:absolute; left:50%; margin-left:-500px; border:0px solid red;overflow:-hidden;}
     10 .pic ul{ height:330px; border:0px solid red; position: absolute;}
     11 .pic ul li{ 1000px; float:left; list-style:none;}
     12 .pic img { 1000px; height:320px; border:none; float:left;}
     13 
     14 .bg{-moz-opacity: 0.5;opacity:.50;filter: alpha(opacity=50); cursor: pointer;}
     15 .pre{ 100%; height:320px; background:#ccc; position:absolute; left:-50%; margin-left:-500px; z-index:2; text-align: right;}
     16 .next{ 100%; height:320px; background:#ccc; position:absolute; left:50%; margin-left:500px; z-index:2;}
     17 .hd{ 100%; height:25px; border:0px solid green; position:absolute; bottom:5px; text-align:center; z-index:3;}
     18 #hd2{ border:0px solid #fff; height: 25px; line-height: 25px; position: absolute; left: 50%;}
     19 #hd2 a{ 25px; height:25px; display:block; margin:0 5px; text-align:center; color:#fff; background:#f60; border-radius: 15px; float:left; text-decoration:none;}
     20 #hd2 a.on{ background: #f00; color:#FFCC00;25px; height:25px;display:block;}
     21 </style>
     22 
     23 <script type="text/javascript">
     24 window.onload = function (){
     25     var oPic = document.getElementById("sPic");
     26     var aLi = oPic.getElementsByTagName("li");
     27     var oD = document.getElementById("hd2");
     28     var aA = oD.getElementsByTagName("a");
     29     var oPre = document.getElementById("pre");
     30     var oNext = document.getElementById("next");
     31     var iNow = 1;
     32     var iSpeed = 100;
     33     var timer = null;
     34     oPic.innerHTML +=oPic.innerHTML;
     35     var beginL = -aLi[0].offsetWidth * 2;
     36     oPic.style.left = 0;
     37     oPic.style.width = aLi[0].offsetWidth * aLi.length + "px";
     38     oD.style.width = 40*aLi.length + "px";
     39     var l =0;
     40     var l2;
     41 
     42     oNext.onclick = function(){
     43         toNext();
     44     }
     45 
     46     picSpace();
     47     
     48     function picSpace(){        
     49         for (var i = aLi.length - 1; i > aLi.length - 3; i--) {
     50             if (oPic.offsetLeft > -aLi[0].offsetWidth) {
     51                 aLi[i].style.position = "relative";
     52                 aLi[i].style.left = -aLi.length * aLi[0].offsetWidth + "px";
     53             }else{
     54                 aLi[i].style.position = "";
     55                 aLi[i].style.left = "";
     56             }
     57         };
     58     }
     59 
     60     function checkNum(vArg){
     61         var nNow = iNow;
     62         for (var i = 0; i < aLi.length/2; i++) {
     63             aA[i].className = "";
     64         };
     65         if(vArg=="pre"){
     66             nNow -=1;
     67             if(nNow > aLi.length / 2 -1){
     68                 nNow = nNow - aLi.length/2;
     69             }
     70         }else{
     71             if(nNow > aLi.length / 2 -1){
     72                 nNow = nNow - aLi.length/2;
     73             }
     74             if (iNow > aLi.length - 1){
     75                 nNow = 0;
     76             };            
     77         }        
     78         //console.log(nNow);
     79         aA[nNow].className = "on";
     80     }
     81 
     82     function toNext(){
     83         checkNum();    
     84         if(iNow > aLi.length -1){
     85             iNow = 0;
     86             oPic.style.left = aLi[0].offsetWidth + "px";
     87             for(var j=0;j<aLi.length/2;j++){
     88                 aLi[j].style.position = "";
     89                 aLi[j].style.left = "0";                
     90             }
     91         }
     92         picSpace();
     93         clearInterval(timer);          
     94         timer = setInterval(function(){    
     95             l = oPic.offsetLeft - iSpeed;      
     96             if(l==-aLi[0].offsetWidth * iNow){
     97                 clearInterval(timer);
     98                 l2 = l;
     99                 //document.title = iNow + " , " + l;
    100                 iNow++;
    101                 if(iNow == aLi.length-1){
    102                     for(var j=0;j<aLi.length/2;j++){
    103                         //console.log(j);
    104                         aLi[j].style.position = "relative";
    105                         aLi[j].style.left = aLi.length * aLi[0].offsetWidth + "px";
    106                     }
    107                 }            
    108             }
    109             oPic.style.left = l + "px";
    110             //console.log(iNow + " , " + aLi.length + " , " + l + " , " + oPic.style.left + " , " + oPic.offsetLeft + " , " + l2);            
    111         },50);
    112     }
    113 
    114     oPre.onclick = toPre;
    115 
    116 
    117     function toPre(){
    118         iNow -=1;
    119         if(iNow == 0){
    120             iNow = 8;
    121             for(var i=0;i<aLi.length;i++){
    122                 aLi[i].style.position = "";
    123                 aLi[i].style.left = "";
    124             }
    125             for(var i=0;i<2;i++){
    126                 aLi[i].style.position = "relative";
    127                 aLi[i].style.left = aLi.length * aLi[0].offsetWidth + "px";
    128             }
    129             oPic.style.left = -aLi.length * aLi[0].offsetWidth + "px";
    130         }
    131         if(oPic.offsetLeft > -(aLi.length-1) * aLi[0].offsetWidth){
    132             for(var i=0;i<aLi.length;i++){
    133                 aLi[i].style.position = "";
    134                 aLi[i].style.left = "";
    135             }
    136         }
    137         
    138         clearInterval(timer);          
    139         timer = setInterval(function(){
    140             checkNum("pre"); 
    141             l = oPic.offsetLeft + iSpeed;      
    142             if(l==-(iNow-1) * aLi[0].offsetWidth){
    143                 clearInterval(timer);
    144                 if(iNow < 2){
    145                     for(var j=aLi.length/2;j< aLi.length;j++){
    146                         aLi[j].style.position = "relative";
    147                         aLi[j].style.left = -aLi.length * aLi[0].offsetWidth + "px";
    148                     }
    149                     
    150                 }               
    151             }
    152             oPic.style.left = l + "px";
    153             //console.log(iNow + " , " + aLi.length + " , " + l + " , " + oPic.style.left + " , " + oPic.offsetLeft);
    154         },50);
    155     }
    156 
    157     for(var i=0;i<aLi.length/2;i++){
    158         var oA = document.createElement("a");
    159         oA.innerHTML = i+1;
    160         if(i==0){
    161             oA.className = "on";
    162         }
    163         oA.href = "javascript:;";
    164         oD.appendChild(oA);
    165 
    166         aA[i].index = i;
    167 
    168         aA[i].onclick = function(){
    169             console.log("i:" + i + " , index:" + this.index + " , iNow:" + iNow);
    170         }
    171     }    
    172 }
    173 </script>
    174 
    175 </head>
    176 
    177 <body>
    178 
    179 <div id="slider">
    180     <div class="pic">
    181         <ul id="sPic">
    182             <li><a href=""><img src="http://www.hengqijy.com/uploadfile/2013/1031/20131031084228263.jpg" alt="1" title="1" /></a></li>
    183             <li><a href=""><img src="http://www.hengqijy.com/uploadfile/2014/0315/20140315023711196.jpg" alt="2" title="2"  /></a></li>
    184             <li><a href=""><img src="http://www.hengqijy.com/uploadfile/2014/0228/20140228091207797.jpg" alt="3" title="3"  /></a></li>
    185             <li><a href=""><img src="http://www.hengqijy.com/statics/images/new_img/ksss.jpg" alt="4" title="4"  /></a></li>
    186         </ul>
    187     </div>
    188     
    189     <div class="hd">
    190         <div id="hd2"></div>
    191     </div>
    192     
    193     <div class="pre bg" id="pre">pre</div>
    194     <div class="next bg" id="next">next</div>
    195     
    196     
    197 </div>
    198 
    199 </body>
    200 </html>

    • 待续...
  • 相关阅读:
    推荐谷歌浏览器12款常用的扩展
    推荐谷歌浏览器12款常用的扩展
    推荐VSCode12个比较实用的插件
    推荐VSCode12个比较实用的插件
    Linux中Shell循环结构for用法笔记
    django之上传图片
    django之中间件设置
    django之admin站点
    django之管理静态文件
    django之设置分页
  • 原文地址:https://www.cnblogs.com/xy404/p/3627346.html
Copyright © 2011-2022 走看看