Jquery輪播圖


這次的作業是寫一個選項卡,一個輪播圖,我把兩者結合起來寫了一個網站常見的導航欄和選項卡

效果圖如下:

 我用的jquery方式寫的所以在頁面導入jquery的框架 

 接下來是頁面的布局從上往下寫

設置公共樣式:

布局一個大div用列表來布局

1.導航欄列表:

2.輪播圖列表

 3.選項卡列表 (選項卡列表比較長但是結構一樣定義四層li和導航欄四個標題對應)

 5.彈出發圖片框(使用div對div進行定位隱藏)

 下面寫是css樣式(樣式打了注釋就不分層了):

        *{
                margin: 0px;
                padding: 0px;
                font-size: 18px;
                font-family:"comic sans ms";
            }
            html{cursor: url('img/指針01.png'),auto;position: relative;}
            a{color: #000; text-decoration: none;}
            ul{list-style: none;}
            img{cursor: pointer; border-radius: 7px;}
            .f_div{
                width: 100%;
                height: auto;
           }
           /* 導航欄樣式 */
           .f_ul{
               width: 100%;
               height: 30px;
               background-color: black;
           }
           .f_ul li{
               float: left;
               padding: 2px 40px;
               border-left: 1px solid #737373;
               cursor: pointer;
           }
           .f_ul li a{color: white;}
           .f_ul li:hover,.f_ul li a:hover{
               background-color: #505050;
               color: aqua;
           }
           /* 選項卡樣式 */
           .s_ul{
               position: relative;
               width: 100%;
               height: auto;
               position: relative;
           }
           .s_ul li{
               background-color: #505050;
               position: absolute;
               display: none;
               opacity: 0.9;
           }
           .s_ul li img {
               width: 15%;
               height: 7.375rem;
               margin:10px 5px;
               border: 3px solid white;
           }
        /*   .s_ul li img:hover{
               transform: scale(1.05);
               transition: .5s;
           } */
           .s_ul li img:hover{
               transform:rotate(15deg);
               transition: .5s;
           }
               /* 輪播圖樣式 */
          /* 圖片寬搞,絕對定位,指針小抓手 */
          .t_ul img{
              width: 1100px;
              height: 400px;
              position: absolute;
              cursor: pointer;
             }
             
          /* 用span標簽來裝上一下一張的按鈕 */
         .t_ul>span{
              width: 15px;
              height: 30px;
              background: url(img/arrow.png);
              background-color: #CCCCCC;
              cursor: pointer;
          }
          /* 按鈕懸浮樣式 顏色變換,放大1.15倍*/
         .t_ul>span:hover{
               background-color: #848484;
               /* transform: scale(1.15);
               transition: .5s; */
            }
           /* 上一頁按鈕,絕對定位 旋轉180度 */
          #span1{
              position: absolute;
              top: 180px;
              left: -30px;
              transform: rotate(180deg) scale(1.55);
          }
          #span2{
              position: absolute;
            transform:scale(1.55);
              top: 180px;
              right: -30px;
          }
          .t_ul{
              list-style: none; /* 去掉滾動圖片的小黑點樣式 */
              width: 1100px;   /* 定義寬 */
              margin: auto;     /* 讓圖片居中顯示 */
              position: relative;  /* 設置想對定位 */
              top: 40px;           /* 距離上邊框40px; */
          }
          /* 重新定義一個ul寫四個li來實現小黑點樣式 */
          .dot{
              font-size: 20px;          /* 設置大小 */
              transform: rotate(-90deg); /* 旋轉-90度讓小黑點水平 */
              position: absolute;        /* 絕對定位 */
              left:550px;
              top: 300px;
              color: #464646;
            list-style-type: disc;
          }
          /* 設置第一個小黑點為白色 */
          .banner_btn{
              color: #fff;
          }
         /* 設置大圖片的div位置大小*/
          #bigImg{
              position: absolute;
              width: 687px;
              height: 378px;
              top: 80px;
              left:360px;
              background-color: azure;
              border-radius:7px ;
              display: none;
          }
          /*右上角的x可要可不要*/
          #spanBing{
              position: absolute;
              right: 7px;
              top: 0px;
              font-size: 24px;
              opacity: 0.8;
              z-index: 1;
              cursor: pointer;
          }
          #spanBing:hover{
              background-color: #00FFFF;
              color: white;
          }
         /* 彈出的大圖片樣式*/
          #bigImg img{
              position: relative;
              border: 2px solid white;
            width: 685px;
              height: 376px;
              opacity: 0.9;
          }

在布局的時候可以按照自己的想法布局,個人布局有缺陷 learning......

下面的js代碼代碼也有注釋,用的都是一些常見的事件和屬性

            $(function(){
                /*定三個全局變量 */
               var set = 0;
               var time;
               var len = 4 /* 輪播圖圖片數量     這里也可以獲取輪播圖數量如 $(".t_ul img").length*/
               
               /* 將圖片切換以及小黑點切換封裝成changeimg方法並賦值一個變量a */
               function changeimg(a){
               $(".t_ul>li").eq(a).fadeIn(1000).siblings("li").fadeOut('slow');/* 淡入淡出 */
               $(".dot>li").eq(a).addClass('banner_btn').siblings().removeClass('banner_btn');/* 改變小黑點樣式 */
               }
               
               /* 將定時器封裝成autoplay方法以便調用 */
               function autoplay(){
                  time = setInterval(function(){    /* 將定時器傳給time變量 */
                  set++ ;
                  if(set > len -1 )
                  {
                   set = 0 ;
                  }
                  changeimg(set);  /* 初始化變量a 將set值傳給changeimg方法 */
                 },5000);
               }
               autoplay(); /* 調用定時器方法*/
               
                /* 點擊上一張圖片按鈕停止定時器 */
                $("#span1").click(function(){
                 clearInterval(time) ;   /* 清除定時器 */
                 set-- ;
                 if(set < 0 )    /* 當圖片為第一張時重新給set賦值為len-1 顯示最后一張 */
                 {
                  set = len-1 ;
                 }
                 changeimg(set) ;
                 autoplay() ;
                });
                
                /* 點擊下一張圖片按鈕停止定時器 */
                 $("#span2").click(function(){
                  clearInterval(time) ;
                  set++ ;
                  if(set === len )     /* 當圖片為最后一張時重新給set賦值為0, 顯示第一張張 */
                  {
                   set = 0 ;
                  }
                  changeimg(set);  
                  autoplay() ;
                 });
                 
                /* 點擊小黑點,顯示想對應的圖片 */
                 $(".dot>li").click(function(){
                   clearInterval(time) ;   
                   set = $(this).index() ;  /* 獲取小黑點索引 並賦值給set*/
                   changeimg(set) ;
                   autoplay() ;
                  });
                /*  當鼠標進入輪播圖時清除定時器,移出時啟動定時器 */
                  $(".t_ul>li").hover(function(){clearInterval(time)} , function(){autoplay()});
                  
                //選項卡懸浮出現對應的卡片
                $(".f_ul>li").hover(function(){
                    $(this).addClass(" .s_ul li").siblings("li").removeClass(" .s_ul li");
                    $(".s_ul li").eq($(this).index()).show().siblings("li").hide();
                },function(){
                    $(".s_ul li").eq($(this).index()).hide();
                    /* $(this).removeClass(" .s_ul li"); */
                });
                //防止移出選項卡時對應的大選項卡消失
                $(".s_ul li").hover(function(){
                    var Tab1 = $(this); /* 獲取鼠標懸浮的那個選項卡*/
                    $(".s_ul>li>img").click(function(){   /*點擊事件 ,點擊選項卡里的圖片*/
                          var Tabl1_img = $(this).attr("src");   /*獲取改圖片的src*/
                          $("#newImg").attr("src",Tabl1_img);   /*將Tabl1_img替換彈框發里img的src值*/
                          $("#bigImg").slideDown();             /*顯示彈出框*/
                      $("#bigImg").hover(function(){            /*當鼠標懸浮在彈出框時避免選項卡消失讓選項卡顯現*/
                          Tab1.show();
                      });
                      $("#bigImg,#spanBing").click(function(){  /* 點擊圖片或者彈出框,關閉彈框*/
                         $("#bigImg").slideUp();
                      });
                 });
                    Tab1.show();
                },function(){
                    $(this).hide();
                });
             });

注釋清晰emmmm可能有些話寫的不太明白QAQ努力改進這里有一個鏈接可以參考  https://www.html5tricks.com/demo/pure-js-image-player-menu/index.html

我是參考這個寫的,源碼也可以下載但是解壓的話需要密碼,有需要可以聯系qq2979100039,或者留言私發。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM