四種方式實現(xiàn)輪播圖

不論是app,還是網(wǎng)站,基本上都會出現(xiàn)輪播圖,今天和大家分享幾種不同工具實現(xiàn)輪播圖的幾種方式。

輪播圖的基本樣式和功能就不需要解釋了,相信能根據(jù)題目選擇看文章的話都知道啥是輪播圖,如果哪位讀者老爺真的讓非要我解釋一下啥是輪播圖,求您饒了在下吧,真心詞窮~

為了方便大家觀看,我把css,html,js都寫在一個文件里。

swiper插件實現(xiàn)輪播圖

swiper是一個實現(xiàn)輪播圖很強大,上手也容易。并且也是現(xiàn)在app,網(wǎng)址等用的最多的,
官方網(wǎng)址:http://www.swiper.com.cn/
下載插件導(dǎo)入,按照教程即可實現(xiàn)精美效果

運行效果

GIF.gif

代碼部分

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <link rel="stylesheet" type="text/css" href="swiper-3.4.1.min.css">
    <script type="text/javascript" src="jquery/jquery-3.0.0.min.js"></script>
    <script type="text/javascript" src="swiper-3.4.1.jquery.min.js"></script>
    <style type="text/css">
        .swiper-container{
            width: 790px;
            height: 340px;
        }
    </style>
</head>

<!-- 結(jié)構(gòu)以及class的類名不允許更改 -->
<body>
    <div class="swiper-container">
    <div class="swiper-wrapper">
        <div class="swiper-slide">![]((1).jpg)</div>
        <div class="swiper-slide">![]((2).jpg)</div>
        <div class="swiper-slide">![]((3).jpg)</div>
        <div class="swiper-slide">![]((4).jpg)</div>
        <div class="swiper-slide">![]((5).jpg)</div>
        <div class="swiper-slide">![]((6).jpg)</div>
        <div class="swiper-slide">![]((7).jpg)</div>
        <div class="swiper-slide">![]((8).jpg)</div>
    </div>
    <!-- 如果需要分頁器 -->
    <div class="swiper-pagination"></div>
    
    <!-- 如果需要導(dǎo)航按鈕 -->
    <div class="swiper-button-prev"></div>
    <div class="swiper-button-next"></div>
    
    <!-- 如果需要滾動條 -->
    <!-- <div class="swiper-scrollbar"></div> -->
</div>

<script type="text/javascript">
    var mySwiper = new Swiper ('.swiper-container', {
    // 滾動方向 horizontal/vertical
    direction: 'horizontal',
    // 自動播放
    autoplay:2000,
    // 是否循環(huán)播放
    loop: true,
    // 如果需要分頁器(小圓點)
    // 是否需要分頁器
    pagination: '.swiper-pagination',
    // 點擊分頁器是否切換到對應(yīng)的圖片 是 true 否 false
    paginationClickable:true,

    // 如果需要前進后退按鈕
    nextButton: '.swiper-button-next',
    prevButton: '.swiper-button-prev',
    
    // 用戶操作swiper之后,是否禁止autoplay。默認(rèn)為true:停止。
    // 如果設(shè)置為false,用戶操作swiper之后自動切換不會停止,每次都會重新啟動autoplay。
    // 操作包括觸碰,拖動,點擊pagination等。
    autoplayDisableOnInteraction:false,
  }) 

</script>
</body>

</body>
</html>

JS實現(xiàn)輪播圖

運行效果

GIF.gif

代碼部分

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>輪播圖</title>
    <style>
        #loopDiv{
            width: 790px;
            height: 340px;
            margin: 0 auto;
            position: relative;
        }
        
        #list{
            list-style: none;
        
            position: absolute;
            bottom: 10px;
            left: 250px;
        }
        #list li{
            float: left;
            width: 20px;
            height: 20px;
            line-height: 20px;
            text-align: center;
            border-radius: 50%;
            background: #aaa;
            margin-right: 10px;
        }
        .chooseBut{
            width: 50px;
            height: 80px;
            background-color: rgba(0,0,0,0.2);
            color: #fff;
            font-size: 30px;
            line-height: 80px;
            text-align: center;
            display: none;
        }
        #left{
            position: absolute;
            left: 0px;
            top: 130px;
        }
        #right{
            position: absolute;
            right: 0px;
            top: 130px;
        }
    </style>
</head>
<body>
    <div id="loopDiv">
        ![](img/0.jpg)
        <ul id="list">
            <li>1</li>
            <li>2</li>
            <li>3</li>
            <li>4</li>
            <li>5</li>
            <li>6</li>
            <li>7</li>
            <li>8</li>
        </ul>
        <div id="left" class="chooseBut"><</div>
        <div id="right" class="chooseBut">></div>
    </div>
    <script type="text/javascript">
        var jsDivBox = document.getElementById("loopDiv");
        //圖片節(jié)點
        var jsImg = document.getElementById("pic");
        //左右按鈕節(jié)點
        var jsLeft = document.getElementById("left");
        var jsRight = document.getElementById("right");
        //獲取所有的li
        var jsUl = document.getElementById("list");
        var jsLis = jsUl.getElementsByTagName("li");
        //讓第一個小圓點變?yōu)榧t色
        jsLis[0].style.backgroundColor = "red";
        
        //顯示當(dāng)前的圖片下標(biāo)
        var currentPage = 0;
        
        //啟動定時器
        var timer = setInterval(func, 1000);
        function func() {
            currentPage++;
            changePic();
        
        }
        function changePic() {
            if (currentPage == 8) {
                currentPage = 0;
            }
            if (currentPage == -1) {
                currentPage = 7;
            }
            //更換圖片
            //"img/1.jpg"
            jsImg.src = "img/" + currentPage + ".jpg";
            //將所有的小圓點顏色清空
            for (var i = 0; i < jsLis.length; i++) {
                jsLis[i].style.backgroundColor = "#aaa";
            }
            //改變對應(yīng)小圓點為紅色
            jsLis[currentPage].style.backgroundColor = "red";
        }
        
        //鼠標(biāo)進入
        jsDivBox.addEventListener("mouseover", func1, false);
        function func1() {
            //停止定時器
            clearInterval(timer);
            //顯示左右按鈕
            jsLeft.style.display = "block";
            jsRight.style.display = "block";
        }
        //鼠標(biāo)移出
        jsDivBox.addEventListener("mouseout", func2, false);
        function func2() {
            //重啟定時器
            timer = setInterval(func, 1000);
        
            //隱藏左右按鈕
            jsLeft.style.display = "none";
            jsRight.style.display = "none";
        }
            
        //點擊左右按鈕
        jsLeft.addEventListener("click", func3, false);
        function func3() {
            currentPage--;
            changePic();
        }
        jsLeft.onmouseover = function() {
            this.style.backgroundColor = "rgba(0,0,0,0.6)";
        }
        jsLeft.onmouseout = function() {
            this.style.backgroundColor = "rgba(0,0,0,0.2)";
        }
        jsRight.addEventListener("click", func4, false);
        function func4() {
            currentPage++;
            changePic();
        }
        jsRight.onmouseover = function() {
            this.style.backgroundColor = "rgba(0,0,0,0.6)";
        }
        jsRight.onmouseout = function() {
            this.style.backgroundColor = "rgba(0,0,0,0.2)";
        }
                
        //進入小圓點
        for (var j = 0; j < jsLis.length; j++) {
            jsLis[j].onmouseover = function() {
                currentPage = parseInt(this.innerHTML) - 1;
                changePic();
            };
        }

    </script>
</body>
</html>

jQuery實現(xiàn)輪播圖

運行結(jié)果

GIF.gif

代碼部分

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
        .pic{
            width: 790px;
            height: 340px;
            margin: 10px auto;
            position: relative;
            overflow: hidden;
        }
        .content{
            width: 99999px;
            height: 340px;
            position: absolute;
            left: 0px;
            top: 0px;

        }
        .content img{
            float: left;
        }
        .index{
            position: absolute;
            left: 300px;
            bottom: 5px;
            width: 200px;
            height: 20px;
            list-style: none;
        }
        .index li{
            width: 10px;
            height: 10px;
            border-radius: 50%;
            float: left;
            margin-left: 10px;
            background-color: rgba(100,100,100,0.3);
        }

        .left{
            width: 30px;
            height:50px;
            background-color:rgba(100,100,100,0.5);  
            position: absolute;
            left: 0px;
            top: 150px;
            line-height: 50px;
            text-align: center;
            font-size: 20px;
            color: #fff;
            display: none;
        }
        .right{
            width: 30px;
            height:50px;
            background-color:rgba(100,100,100,0.5);  
            position: absolute;
            right: 0px;
            top: 150px;
            line-height: 50px;
            text-align: center;
            font-size: 20px;
            color: #fff;
            display: none;
        }
        .index .first{
            background-color: red;
        }

    </style>
    <script type="text/javascript" src="jquery/jquery-3.0.0.min.js"></script>
</head>
<body>
    <div class="pic">
        <div class="content">
            ![](img/(1).jpg)
            ![](img/(2).jpg)
            ![](img/(3).jpg)
            ![](img/(4).jpg)
            ![](img/(5).jpg)
            ![](img/(6).jpg)
            ![](img/(7).jpg)
            ![](img/(8).jpg)
        </div>
        <ul class="index">
            <li class="first"></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
        </ul>
        <div class="right">></div>
        <div class="left"><</div>
    </div>
    <script type="text/javascript">
        $(function(){
            //每個固定的時間移動圖片
            var timer = setInterval(picLoop,1000);
            var index = 0;
            function picLoop(){
                index++;
                if (index==8) {index=0;}
                $(".content").animate({"left":-790*index},300);
                $("li").eq(index).css("background-color","red")
                       .siblings().css("background-color","rgba(100,100,100,0.3)");
            }

            //定時器的控制
            $(".pic").hover(function(){
                clearInterval(timer);
                $(".left").show();
                $(".right").show();
            },function(){
                timer = setInterval(picLoop,1000);
                $(".left").hide();
                $(".right").hide();
            })

            $("li").mouseover(function(){
                $(this).css("background-color","red")
                       .siblings().css("background-color","rgba(100,100,100,0.3)");
                index = $(this).index();
                $(".content").animate({"left":-790*index},300);

            })

            $(".left").click(function(){
                index--;
                if (index==-1) {index=7;}
                $(".content").animate({"left":-790*index},300);
                $("li").eq(index).css("background-color","red")
                       .siblings().css("background-color","rgba(100,100,100,0.3)");
            })
            $(".right").click(function(){
                index++;
                if (index==8) {index=0}
                $(".content").animate({"left":-790*index},300);
                $("li").eq(index).css("background-color","red")
                       .siblings().css("background-color","rgba(100,100,100,0.3)"); 
            })


        })
    </script>
</body>
</html>

css3實現(xiàn)輪播圖

css3的輪播實用性差,但是也可以使用,但是可以鍛煉我們的思維。
運行效果

GIF.gif

代碼部分

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style>
        * {
            margin:0;
            padding:0;
        }

        ul {
            list-style:none;
        }
        .loop{
            position: relative;
            margin:30px auto;
            width:600px;
            height:300px;
        }
        
        #wrap {
             position:relative;
             width:600px;
             height:300px;
             border:1px solid #9cc5ef;
             overflow:hidden;
        }
        
        #slider {
              width:300%;
              height:100%;
              font:100px/400px Microsoft Yahei;
              text-align:center;
              color:#fff;
              margin-left:0;
              -webkit-animation:slide1 3s ease-out infinite;
        }
        
        #slider li {
              float:left;
              width:600px;
              height:100%;
        }
        #slider img{
             width:600px;
             height:100%;
        }
        /*創(chuàng)建三種動畫策略*/
        @-webkit-keyframes slide1 {
          0% { margin-left:0;}
          23% { margin-left:0;}
          33% { margin-left:-600px;}
          56% { margin-left:-600px;}
          66% { margin-left:-1200px;}
          90% { margin-left:-1200px;}
          100% {margin-left:0;}
        }
        
        @-webkit-keyframes slide2 {
          0% { margin-left:-600px;}
          23% { margin-left:-600px;}
          33% { margin-left:-1200px;}
          56% { margin-left:-1200px;}
          66% { margin-left:0;}
          90% { margin-left:0;}
          100% {margin-left:-600px;}
        }
        
        @-webkit-keyframes slide3 {
          0% { margin-left:-1200px;}
          23% { margin-left:-1200px;}
          33% { margin-left:0;}
          56% { margin-left:0;}
          66% { margin-left:-600px;}
          90% { margin-left:-600px;}
          100% {margin-left:-1200px;}
        }
        
        
        /*當(dāng)我們點擊對應(yīng)按鈕時顯示對應(yīng)的動畫*/
        #first:checked ~ #wrap #slider {
          -webkit-animation-name:slide1;
        }
        
        #second:checked ~ #wrap #slider {
          -webkit-animation-name:slide2;
        }
        
        #third:checked ~ #wrap #slider {
          -webkit-animation-name:slide3;
        }
        
        
        /*短暫地取消動畫名稱,模擬重啟動畫*/
        #first:active ~ #wrap #slider {
          -webkit-animation-name:none;
          margin-left:0;
        }
        
        #second:active ~ #wrap #slider {
          -webkit-animation-name:none;
          margin-left:-600px;
        }
        
        #third:active ~ #wrap #slider {
          -webkit-animation-name:none;
          margin-left:-1200px;
        }
        #opts {
          width:600px;
          height:40px;
          margin:auto;
          color:#fff;
          text-align:center;
          font:16px/30px Microsoft Yahei;
          position: absolute;
          top: 260px;
          left: 250px;
        }
        
        #opts label {
          float:left;
          width:30px;
          height:30px;
          margin-right:10px;
          background:#cccccc;
          cursor:pointer;
          border-radius: 50%;
        }
        
        #opts label:hover {
          background:#405871;
        }
        
        /* 隱藏Input按鈕*/
        #first, #second, #third {
          display:none;
        }

        </style>
    </head>
    <body>
        <div class="loop">
            <input type="radio" name="slider" id="first">
            <input type="radio" name="slider" id="second">
            <input type="radio" name="slider" id="third">
              
            <div id="wrap">
              <ul id="slider">
                <li>![](img/0.jpg)</li>
                <li>![](img/1.jpg)</li>
                <li>![](img/2.jpg)</li>
              </ul>
            </div>  
            <div id="opts">
              <label for="first">1</label>
              <label for="second">2</label>
              <label for="third">3</label>
            </div>
        </div>
    </body>
</html>

覺得有收獲就點贊啦

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,836評論 6 540
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,275評論 3 428
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,904評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,633評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 72,368評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,736評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,740評論 3 446
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,919評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,481評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 41,235評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,427評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,968評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,656評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,055評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,348評論 1 294
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,160評論 3 398
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 48,380評論 2 379

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,711評論 25 708
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,162評論 4 61
  • 車子很快就到了公司生產(chǎn)總部的大樓下面,到了外圍,只見上百名的工人站在那里,很多人都舉著牌子,上面寫著要求加工資...
    櫞棶鰣鯢閱讀 274評論 0 0
  • 加入早睡早起打卡社群后,遇到一群特別上進且可愛的人,大腦好似被刺激打開了任督二脈,活躍而又清晰。很多想法在腦子里跳...
    達西說閱讀 238評論 0 0