Swiper简单的导航切换

Posted yangjinggui

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Swiper简单的导航切换相关的知识,希望对你有一定的参考价值。

html

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <meta name="viewport" content="width=device-width, initial-scale=1.0">
 6     <meta http-equiv="X-UA-Compatible" content="ie=edge">
 7     <script src="./jquery/jquery-3.4.1/jquery-3.4.1.js"></script>
 8     <script src="./swiper/swiper.js"></script>
 9     <title>Document</title>
10     <link rel="stylesheet" href="./swiper/swiper.css">
11     
12 </head>
13 <body>
14     <div class="wrap">
15         <div class="nav">
16             <ul>
17                 <li class="active">菜单1</li>
18                 <li>菜单2</li>
19                 <li>菜单3</li>
20                 <li>菜单4</li>
21             </ul>
22         </div>
23         <div class="swiper-container">
24             <div class="swiper-wrapper">
25                 <div class="swiper-slide">Slide 1</div>
26                 <div class="swiper-slide">Slide 2</div>
27                 <div class="swiper-slide">Slide 3</div>
28                 <div class="swiper-slide">Slide 4</div>
29             </div>
30             <!-- 如果需要分页器 -->
31             <div class="swiper-pagination"></div>
32             
33             <!-- 如果需要导航按钮 -->
34             <div class="swiper-button-prev"></div>
35             <div class="swiper-button-next"></div>
36             
37             <!-- 如果需要滚动条 -->
38             <div class="swiper-scrollbar"></div>
39         </div>
40     </div>
41 </body>
42 <script src="./index.js"></script>
43 </html>

css

<style>
        *{
            margin: 0;
            padding: 0;
            list-style: none;
        }
        .wrap{
            width: 400px;
            height: 300px;
            margin: 0 auto;
        }
        .nav{
            width: 100%;
            height: 100px;
            display: flex;
        }
        .nav ul{
            flex: 1;
            display: flex;
            align-items: center;
            justify-content: space-around;
        }
        .nav li.active{
            color:#999;
        }
        .swiper-slide{
            width: 100%;
            height: 200px;
            text-align: center;
            line-height: 200px;
            background: cornsilk;
        }
    </style>

js

$(document).ready(function(){
    
    // 初始化swiper轮播插件
    var mySwiper = new Swiper (‘.swiper-container‘, {
        direction: ‘horizontal‘, // 横向切换选项
        loop: true, // 循环模式选项
        speed:300, //切换速度
        autoplay: {
        delay: 3000,//延迟切换
        stopOnLastSlide: false,//如果设置为true,当切换到最后一个slide时停止自动切换。(loop模式下无效)。
        disableOnInteraction: false, //如果设置为false,用户操作swiper之后自动切换不会停止,每次都会重新启动autoplay。
        },
        on: { //回调函数,swiper从当前slide开始过渡到另一个slide时执行。
          slideChangeTransitionStart: function(){
            var index = this.realIndex;  //当前活动块的索引,与activeIndex不同的是,在loop模式下不会将复制的块的数量计算在内。
            $(".nav li").eq(index).addClass("active").siblings().removeClass("active");//根据活动块的索引切换每个li的字体颜色
          },
        },
        // 如果需要分页器
        pagination: {
          el: ‘.swiper-pagination‘,
        },
        
        // 如果需要前进后退按钮
        navigation: {
          nextEl: ‘.swiper-button-next‘,
          prevEl: ‘.swiper-button-prev‘,
        },
        
        // 如果需要滚动条
        scrollbar: {
          el: ‘.swiper-scrollbar‘,
        },
      }) 
    //  获取到导航条的所有li
    $(".nav li").click(function(){
        // 获取到当前点击li的索引值
        var index = $(this).index();
        mySwiper.slideToLoop(index, 1000, false);//切换到第一个slide,速度为1秒
        $(this).addClass("active").siblings().removeClass("active")
    })
  
 })

以上是关于Swiper简单的导航切换的主要内容,如果未能解决你的问题,请参考以下文章

Swiper简单的导航切换

在 Android Studio 的默认导航抽屉模板中使用按钮在片段之间切换

初尝微信小程序2-Swiper组件导航栏标题配置

切换片段时导航重置

swiper组件怎么修改切换动画 让每一次滑动的切换效果都不一样?

导航上的片段生命周期重叠