swiper的使用

什么是swiper

  • Swiper是纯javascript打造的滑动特效插件,面向手机、平板电脑等移动终端。
  • Swiper能实现触屏焦点图、触屏Tab切换、触屏轮播图切换等常用效果。
  • Swiper开源、免费、稳定、使用简单、功能强大,是架构移动终端网站的重要选择!

了解详情请查看swiper官网

下面是使用代码

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <!-- 在 head 中引入 Swiper CSS -->
  <link rel="stylesheet" href="https://unpkg.com/swiper@11.0.5/swiper-bundle.min.css">

  <!-- 在 body 末尾引入 Swiper JS -->
  <script src="https://unpkg.com/swiper@11.0.5/swiper-bundle.min.js"></script>

  <style>
    /* 容器基础样式 */
    .swiper {
      width: 100%;
      height: 400px;
    }

    .swiper-button-prev,
    .swiper-button-next {
      background-color: #000 !important;
      /* 黑色背景 */
      border-radius: 50% !important;
      /* 圆形效果 */
      width: 40px !important;
      /* 按钮尺寸 */
      height: 40px !important;
      transition: 0.3s;
      /* 过渡动画 */
    }

    /* 修改箭头颜色为白色 */
    .swiper-button-prev::after,
    .swiper-button-next::after {
      color: #fff !important;
      /* 白色箭头 */
      font-size: 20px !important;
      /* 调整箭头大小 */
    }

    /* 悬停效果 */
    .swiper-button-prev:hover,
    .swiper-button-next:hover {
      background-color: #333 !important;
    }
  </style>
</head>

<body>
  <!-- 轮播图容器 -->
  <div class="swiper">
    <div class="swiper-wrapper">
      <!-- 轮播项(图片可替换为任意内容) -->
      <div class="swiper-slide"><img src="../day15/assets/carousel1.png" alt=""></div>
      <div class="swiper-slide"><img src="../day15/assets/carousel2.png" alt=""></div>
      <div class="swiper-slide"><img src="../day15/assets/carousel3.png" alt=""></div>
    </div>

    <!-- 导航按钮(可选) -->
    <div class="swiper-button-prev"></div>
    <div class="swiper-button-next"></div>

    <!-- 分页器(可选) -->
    <div class="swiper-pagination"></div>
  </div>


  <script>
    const swiper = new Swiper('.swiper', {
      // 核心配置
      loop: true,             // 无缝循环 [6,7](@ref)
      speed: 3000,             // 切换动画时长(单位ms)

      autoplay: {
        delay: 3000,        // 自动播放间隔(单位ms)
        disableOnInteraction: false // 用户操作后仍自动播放
      },

      // 分页器配置
      pagination: {
        el: '.swiper-pagination',
        clickable: true     // 分页器可点击切换
      },

      // 导航按钮配置
      navigation: {
        nextEl: '.swiper-button-next',
        prevEl: '.swiper-button-prev'
      },
    });
  </script>
</body>

</html>

对于底部分页的修改

<!DOCTYPE html>
<html lang="zh-CN">

<head>
  <meta charset="UTF-8" />
  <title>官方爆料</title>
  <link rel="stylesheet" href="../../css/announce/announce.css">
  <link rel="stylesheet" href="../../node_modules/swiper/swiper-bundle.min.css">
</head>
<style>
// 轮播图分页器
.swiper-pagination{
	/* 把绝对定位改为相对定位 这样就会贴着上面的轮播图 显示分页器 */
	position: relative;
	margin: 0;
	height: 13px;
	width: 100%;
	margin-bottom: 22px;
	.swiper-pagination-bullet{
	  	background-color: #931919;
	  	/* 这个不透明度必须加 这样你的轮播图才可实现分页器不选中的颜色是什么 */
	  	opacity: 1;
	  	margin:0 5px; 
	  	height: 1px;
	  	width: 27px;
	  	/* 去除圆角变成条形 */
	  	border-radius: 0;
	}
	.swiper-pagination-bullet-active{
		/* 修改激活颜色*/
	  	background-color: #c39b5e;
	}
}
</style>

<body>
  
  <!-- 轮播图 -->
  <div class="banner">
    <div class="swiper">
      <div class="swiper-wrapper">
        <div class="swiper-slide">
        	<img src="../../assets/announce/carousel/1.jpg" />
        </div>
        <div class="swiper-slide">
        	<img src="../../assets/announce/carousel/2.webp" />
        </div>
        <div class="swiper-slide">
        	<img src="../../assets/announce/carousel/3.webp" />
        </div>
      </div>
    </div>
    <div class="swiper-pagination"></div>
  </div>
  <script src="../../node_modules/swiper/swiper-bundle.min.js"></script>
  <script>
    const swiper = new Swiper('.swiper', {
      // 核心配置
      loop: true,             // 无缝循环 [6,7](@ref)
      speed: 3000,             // 切换动画时长(单位ms)

      autoplay: {
        delay: 3000,        // 自动播放间隔(单位ms)
        disableOnInteraction: false // 用户操作后仍自动播放
      },

      // 分页器配置
      pagination: {
        el: '.swiper-pagination',
        clickable: true     // 分页器可点击切换
      },

      // 导航按钮配置
      navigation: {
        nextEl: '.swiper-button-next',
        prevEl: '.swiper-button-prev'
      },
    });
  </script>
</body>

</html>

仿无畏契约

可以参考我的源码
gitee仓库源码无畏契约
使用版本swiper11
目录如下
在这里插入图片描述
图片可用其他图片替换

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="utf-8" />
  <title>Swiper demo</title>
  <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1" />
  <!-- Link Swiper's CSS -->
  <link rel="stylesheet" href="./swiper/swiper-bundle.min.css" />

  <!-- Demo styles -->
  <style>
    * {
      margin: 0;
      padding: 0;
      box-sizing: border-box;
    }

    .bg3 {
      background: url(./imgs/bg.webp) no-repeat;
      width: 100%;
      height: 100vh;
      background-size: cover;
      background-position: center;
      position: relative;
    }

    .contain {
      position: absolute;
      background: url(./imgs/weapon-bg.png) no-repeat 0 center /contain;
      height: 600px;
      width: 1250px;
      font-size: 14px;
      /* color: #000; */
      left: 150px;
      top: 60px;
      margin: 0;
      padding: 0;
      /* background: #000; */
    }

    .swiper {
      width: 100%;
      height: 300px;
      margin-left: auto;
      margin-right: auto;
    }

    .swiper-slide {
      text-align: center;
      font-size: 18px;
      /* background: #fff; */
      background: #ece8e1;
      display: flex;
      justify-content: center;
      align-items: center;
    }

    .swiper-slide img {
      display: block;
      width: 100%;
      height: 100%;
      object-fit: cover;
    }



    .swiper-slide {
      background-size: cover;
      background-position: center;
    }

    /* .swiper {
      width: 100%;
      height: 300px;
      margin-left: auto;
      margin-right: auto;
    } 
      */
    /* 显示 */
    .mySwiper2 {
      height: 80%;
      width: 70%;
      position: absolute;
      left: 0;
      top: 0;

    }

    .mySwiper2 .swiper-slide {
      position: relative;
      background: transparent;
    }
    .mySwiper2 .swiper-slide  .mask{
      position: absolute;
      left: 0;
      bottom: 0;
      width: 100px;
      height: 100px;
      background-color: pink;
    }


    /* .swiper {
      width: 100%;
      height: 300px;
      margin-left: auto;
      margin-right: auto;
    } 
      */
    /* 底部 */
    .mySwiper {
      /* height: 20%; */
      height: 600px;
      width: 300px;
      box-sizing: border-box;
      padding: 10px 0;
      /*  */
      position: absolute;
      right: 0;
      top: 0;
      background: transparent;
    }

    /* .mySwiper .swiper-wrapper{
      display: flex;
      flex-direction: column;
    } */

    /* 底部 */
    .mySwiper .swiper-slide {
      width: 100%;
      height: 100%;
      /* opacity: 0.4; */
    }

    .mySwiper .swiper-slide span {
      position: absolute;
      display: inline-block;
      left: 6px;
      bottom: 6px;
      font-size: 13px;
    }

    /* 底部 */
    .mySwiper .swiper-slide-thumb-active {
      opacity: 1;
    }

    /* 所有 */
    .swiper-slide img {
      display: block;
      width: 100%;
      height: 100%;
      object-fit: cover;
      /* background: ; */
    }
  </style>
</head>

<body>
  <div class="bg3">
    <div class="contain">
      <!-- Swiper -->
      <div style="--swiper-navigation-color: #802727; --swiper-pagination-color: #fff" class="swiper mySwiper2">
        <div class="swiper-wrapper">
          <div class="swiper-slide">
            <img src="./imgs/1.webp" />
            <div class="mask">了解更多</div>
          </div>
          <div class="swiper-slide">
            <img src="./imgs/2.webp" />
            <div class="mask">了解更多</div>
          </div>
          <div class="swiper-slide">
            <img src="./imgs/3.webp" />
            <div class="mask">了解更多</div>
          </div>
          <div class="swiper-slide">
            <img src="./imgs/4.webp" />
            <div class="mask">了解更多</div>
          </div>
          <div class="swiper-slide">
            <img src="./imgs/5.webp" />
            <div class="mask">了解更多</div>
          </div>
        </div>
        <!-- <div class="swiper-button-next"></div>
        <div class="swiper-button-prev"></div> -->
      </div>
      <!-- 底部 -->
      <div thumbsSlider="" class="swiper mySwiper">
        <div class="swiper-wrapper">
          <div class="swiper-slide">
            <img src="./imgs/1.webp" />
            <span>短炮</span>
          </div>
          <div class="swiper-slide">
            <img src="./imgs/2.webp" />
            <span>短炮</span>
          </div>
          <div class="swiper-slide">
            <img src="./imgs/3.webp" />
            <span>短炮</span>
          </div>
          <div class="swiper-slide">
            <img src="./imgs/4.webp" />
            <span>短炮</span>
          </div>
          <div class="swiper-slide">
            <img src="./imgs/5.webp" />
            <span>短炮</span>
          </div>
        </div>
      </div>
    </div>
  </div>



  <!-- Swiper JS -->
  <script src="./swiper/swiper-bundle.min.js"></script>

  <!-- Initialize Swiper -->
  <script>
    // 底部
    var swiper = new Swiper(".mySwiper", {

      direction: 'vertical',
      spaceBetween: 10,
      slidesPerView: 4,
      freeMode: true,
      watchSlidesProgress: true,
      on: {
        // 点击事件添加背景
        click: function (swiper, event) {
          // alert('事件触发了;');
          var slides = swiper.slides;
          slides.forEach(function (slide) {
            slide.style.background = '';
          });
          var clickedSlide = event.target.closest('.swiper-slide');
          if (clickedSlide) {
            clickedSlide.style.background = "url(./imgs/select.webp)";
          }
        },
        slideChange: function () {

        }

      },
    });

    // 初始化,刚刚进入页面,默认显示第一张图片
    if (swiper.slides.length > 0) {
      swiper.slides[0].style.backgroundImage = "url(./imgs/select.webp)";
    }

    // 上部
    var swiper2 = new Swiper(".mySwiper2", {
      spaceBetween: 10,
      // 垂直
      direction: 'vertical',
      effect: "fade",
      // 淡入淡出效果的配置选项,不要覆盖
      fadeEffect: {
        crossFade: true, // 启用交叉淡入淡出效果
      },

      // navigation: {
      //   nextEl: ".swiper-button-next",
      //   prevEl: ".swiper-button-prev",
      // },
      // 不允许触碰翻页
      allowTouchMove: false,
      thumbs: {
        swiper: swiper,
      },
    });
  </script>
</body>

</html>
在移动端开发中,swiper是一种常用的组件,用于实现轮播图、手势滑动等功能。swiper提供了丰富的API和配置选项,使得开发者可以轻松实现各种滑动效果和交互。 以下是使用swiper的基本步骤: 1. **引入swiperCSS和JS文件**: 首先,需要在HTML文件中引入swiperCSS和JS文件。可以通过CDN引入,也可以下载到本地引入。 ```html <link rel="stylesheet" href="https://unpkg.com/swiper/swiper-bundle.min.css"> <script src="https://unpkg.com/swiper/swiper-bundle.min.js"></script> ``` 2. **创建HTML结构**: 创建一个swiper容器,并添加swiper-wrapper和swiper-slide等结构。 ```html <div class="swiper-container"> <div class="swiper-wrapper"> <div class="swiper-slide">Slide 1</div> <div class="swiper-slide">Slide 2</div> <div class="swiper-slide">Slide 3</div> </div> <!-- 如果需要分页器 --> <div class="swiper-pagination"></div> <!-- 如果需要导航按钮 --> <div class="swiper-button-prev"></div> <div class="swiper-button-next"></div> </div> ``` 3. **初始化swiper**: 在JavaScript中初始化swiper,并配置相关参数。 ```javascript var mySwiper = new Swiper('.swiper-container', { loop: true, pagination: { el: '.swiper-pagination', clickable: true, }, navigation: { nextEl: '.swiper-button-next', prevEl: '.swiper-button-prev', }, }); ``` 4. **自定义样式**: 根据需要自定义swiper的样式,以适应不同的设计需求。 ```css .swiper-container { width: 100%; height: 300px; } .swiper-slide { display: flex; align-items: center; justify-content: center; background: #ccc; font-size: 24px; } ``` 通过以上步骤,你就可以在移动端项目中实现一个基本的swiper轮播图。根据具体需求,你可以进一步配置swiper的选项,如自动播放、滑动速度、效果切换等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值