1. 程式人生 > 程式設計 >Js圖片點選切換輪播實現程式碼

Js圖片點選切換輪播實現程式碼

圖片點選切換

<!DOCTYPE html>
<html>
  <head> 
    <meta charset="UTF-8">
    <title></title>
    <script type="text/javascript">
      window.onload=function(){
        var btn1=document.getElementById("pre");
        var btn2=document.getElementById("next");
        var img=document.getElementById("img1");
        var imgarr=["images/1.jpg","images/2.jpg","images/3.jpg","images/4.jpg","images/5.jpg","images/6.jpg"];
        var index=0;
        var info=document.getElementById("pd");
          info.innerHTML="一共"+imgarr.length+"張 圖片 ,當前 第"+(index+1)+"張";        
        btn1.onclick=function(){  
          index--;
          if(index<0){
            index=imgarr.length-1;
          }
          img.src=imgarr[index];
            info.innerHTML="一共"+imgarr.length+"張 圖片 ,當前 第"+(index+1)+"張";
        };
        btn2.onclick=function(){  
          index++;
          if(index>imgarr.length-1){
            index=0;
          }
          img.src=imgarr[in000dex];
          info.innerHTML="一共"+imgarr.length+"張 圖片 ,當前 第"+(index+1)+"張";
        };
      };
    </script>
    <style type="text/css">
      *{
        padding: 0;
        margin:0;
      }
      .outer{
        width:640px;
        height:453px;
        margin:100px auto;
        
        text-align: center;
      }
      
    </style>
  </head>
  <body>
    <div class="outer">
      <p id="pd"></p>
      <img src="images/1.jpg" id="img1" />
      <button id="pre">上一張</button>
      <button id="next">下一張</button>
       
    </div>
  </body>
</html>

實現效果

Js圖片點選切換輪播實現程式碼

輪播

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title></title>
    <style type="text/css">
      *{
        padding:0px;
        margin: 0px;
      }
      
      #outer{
        position: relative;
        width:660px;
        height:425px;
        margin:50px auto ;
        background:yellow;
        padding:10px 0;
        overflow: hidden;
      }
      #imglist{
        position: absolute;
        list-style: none;
        /*
         * 設定偏移量
         * 
         * 
         */
        left:0px;
       
      }
      #imglist li{
        margin: 0 10px;
        float:left;
      }
      
      #navDiv{
        position: absolute;
        bottom: 15px;
        /*
         * 設定left值
         * outer寬度 640
         * navDiv寬度 30*5=125
         * 640-125=515
         * 515/2=257.5
         * left:257.5px;
         */
        left:0;
        
      }
      #navDiv a{
        float:left;
        width:20px;
        height:20px;
        background:#ff1;
        opacity: 0.5;
        /*相容IE8的透明*/
        filter:alpha(opacity=50);
        margin: 0 5px;
      }
      #navDiv a:hover{
        background:red;
      }
    </style>
    <script type="text/javascript" src="tools.js"></script>
    <script type="text/javascript">
    
      window.onload=function(){
        var imglist=document.getElementById("imglist");
        var navDiv=document.getElementById("navDiv");
        var outer=document.getElementById("outer");
        //獲取頁面所有的img標籤
        var imgarr=document.getElementsByTagName("img");
        //獲取頁面所有的A標籤
        var allA=document.getElementsByTagName("a");
        //預設顯示圖片的索引
        var index=0; 
        //設定
        allA[index].style.background="black";
        //設定ul的長度
        imglist.style.width=660*imgarr.length+"px";
        //設定navDiv的left值
        navDiv.style.left=(outer.offsetWidth-navDiv.offsetWidth)/2+"px";
       
        //定義一個定時器標識
        var timer;
        
        //點選超連結切換到指定的圖片
        //為所有的超連結繫結單擊響應函式
        for(var i=0;i<allA.length;i++){
          //為每一個超連結都新增一個NUM屬性
          allA[i].num=i;
          //為超連結繫結單擊響應函式
          allA[i].onclick=function(){
            //關閉自動切換
            clearInterval(timer);
          //獲取點選超連結的索引,並將其設定為index
          index=this.num;
          //切換圖片
          
          //imglist.style.left=index*-660+"px";
          
          setA();
          move(imglist,20,-660*index,"left",function(){
            //動畫執行完後,再執行自動切換
             autoChange();
          }); 
          
          };
        }
        //自動切換圖片
        autoChange();
        
        //建立一個方法來設定選中的A
        function setA(){
          
          //判斷是不是最後一張照片
          if(index>=imgarr.length-1){
            index=0;
            
          //如果是最後一張,就把imglist移到0
          imglist.style.left=0+"px";
          }
          for(var j=0;j<allA.length;j++){
            //去掉內聯樣式,只剩下樣式表的樣式
            allA[j].style.background="";
          }
          
          allA[index].style.background="black";
          
        }; 
        
        function autoChange(){
          timer=setInterval(function(){
            index++;
            index%=imgarr.length;
            move(imglist,function(){
            setA();
            });
          },3000);
        };
 
      };
      
    </script>
  </head>
  <body>
   <!--建立一個外部的div,來作為大的容器-->
    <div id="outer">
      <!--建立一個ul,用來放置圖片-->
      <ul id="imglist">
        <li>
          <img src="images/1.jpg" />
        </li>
        <li>
          <img src="images/2.jpg" />
        </li>
        <li>
          <img src="images/3.jpg" />
        </li>
        <li>
          <img src="images/4.jpg" />
        </li>
        <li>
          <img src="images/5.jpg" />
        </li>
        <li>
          <img src="images/1.jpg" />
        </li>
      </ul>
      <div id="navDiv">
        <a href="javascript:;" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" ></a>
        <a href="javascript:;" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" ></a>
        <a href="javascript:;" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" ></a>
        <a href="javascript:;" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" ></a>
        <a href="javascript:;" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" ></a>
        
      </div>
    </div>
  </body>
</html>

tools.js

//動畫函式
        /*引數
         * -1.obj 物件
         * -2.speed 速度
         * -3.target 執行動畫的目標
         * -4.arrt 要變化的樣式
         * -5.callback:回撥函式 將會在動畫執行完後執行
         */
      
        function move(obj,speed,target,arrt,callback){
          //關閉上一次定時器
            clearTimeout(obj.timer);
            //判斷速度的正負值
            //如果從0向800移動則為正
            //如果從800向0移動則為負
            var current=parseInt(getStyle(obj,arrt));
            if(current>target){
              speed=-speed;
            }
            //開啟一個定時器
            //為obj新增一個timer屬性,用來儲存它1自己的定時器的標識
            obj.timer=setInterval(function(){
              
            //獲取原來的left值
            var oldvalue=parseInt(getStyle(obj,arrt));
            //在舊值的基礎上增加
            var newvalue=oldvalue+speed;
            if(speed<0&&newvalue<target||speed>0&&newvalue>target)
            {
              newvalue=target;
            }
            obj.style[arrt]=newvalue+"px";
            //當元素到達target關閉定時器
            if(newvalue===target||newvalue===target){
            clearTimeout(obj.timer);
            //動畫執行完 執行函式
            callback&&callback();
          }
          
        },30);
        };

實現效果

Js圖片點選切換輪播實現程式碼

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。