vue2踩坑之项目:Swiper轮播图使用

首先安装swiper插件

npm i swiper@5

安装出现错误:npm ERR

javascript 复制代码
npm ERR! code ERESOLVE
npm ERR! ERESOLVE could not resolve
npm ERR!
npm ERR! While resolving: @vue/eslint-config-standard@6.1.0
npm ERR! Found: eslint-plugin-vue@8.7.1
npm ERR! node_modules/eslint-plugin-vue
npm ERR!   dev eslint-plugin-vue@"^8.0.3" from the root project
npm ERR!
npm ERR! Could not resolve dependency:
npm ERR! peer eslint-plugin-vue@"^7.0.0" from @vue/eslint-config-standard@6.1.0
npm ERR! node_modules/@vue/eslint-config-standard
npm ERR!   dev @vue/eslint-config-standard@"^6.1.0" from the root project
npm ERR!
npm ERR! Conflicting peer dependency: eslint-plugin-vue@7.20.0
npm ERR! node_modules/eslint-plugin-vue
npm ERR!   peer eslint-plugin-vue@"^7.0.0" from @vue/eslint-config-standard@6.1.0
npm ERR!   node_modules/@vue/eslint-config-standard
npm ERR!     dev @vue/eslint-config-standard@"^6.1.0" from the root project
npm ERR!
npm ERR! Fix the upstream dependency conflict, or retry
npm ERR! this command with --force, or --legacy-peer-deps
npm ERR! to accept an incorrect (and potentially broken) dependency resolution.
npm ERR!
npm ERR! See C:\Users\jing\AppData\Local\npm-cache\eresolve-report.txt for a full report.

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\jing\AppData\Local\npm-cache\_logs\2023-03-22T08_20_28_486Z-debug-0.log

解决方法:npm 版本太高,切换一下就好了

如下代码 运行后再重新 npm i

npm install npm@6.14.15 -g

引入Swiper

// 可以直接在组件里引入这个文件

//导入js

import Swiper from "swiper";

//引入css

import "swiper/css/swiper.min.css";

代码:

javascript 复制代码
//html结构
<template>
  <!-- 记得将swiper修改过来 -->
  <div class="swiper-container" id="swiperContainer">
    <div class="swiper-wrapper">
      <div class="swiper-slide" style="background-color: #0091FE;">
        <h1>Page 01</h1>
      </div>
      <div class="swiper-slide" style="background-color: #43D7B5;">
        <h1>Page 02</h1>
      </div>
      <div class="swiper-slide" style="background-color: #6DD400;">
        <h1>Page 03</h1>
      </div>
      <div class="swiper-slide" style="background-color: #F7B500;">
        <h1>Page 04</h1>
      </div>
      <div class="swiper-slide" style="background-color: #F96400;">
        <h1>Page 05</h1>
      </div>
    </div>
    <!-- 如果不需要以下功能,注释即可 -->
    <!-- 如果需要分页器 -->
    <div class="swiper-pagination"></div>

    <!-- 如果需要导航按钮 -->
    <div class="swiper-button-prev swiper-button-black"></div>
    <div class="swiper-button-next swiper-button-black"></div>

    <!-- 如果需要滚动条 -->
    <div class="swiper-scrollbar"></div>
  </div>
</template>


//js
//mounted里面调用
export default {
  components: {
  },
  setup() {
    return {
      // modules: [Pagination],
    };
  },
  methods: {

  },
  mounted() {
    var Myswiper = new Swiper(".swiper-container", {
      loop: true, // 循环模式选项
      slidesPerView: 3,
      centeredSlides: true,
      centeredSlidesBounds: true,
      // 自动轮播
      autoplay: {
        delay: 1300,
        stopOnLastSlide: false,
        disableOnInteraction: true,
        waitForTransition: false,
        pauseOnMouseEnter: true, // 鼠标悬停暂停轮播

      },
      // 翻转
      effect: 'coverflow',
      slidesPerView: 3,
      centeredSlides: true,
      coverflowEffect: {
        rotate: 30,
        stretch: 10,
        depth: 60,
        modifier: 2,
        slideShadows: true
      },


      // 如果需要分页器
      pagination: {
        el: ".swiper-pagination",
        clickable: true,

      },

      // 下一页,上一页
      navigation: {
        nextEl: '.swiper-button-next',
        prevEl: '.swiper-button-prev',
      },
      
      // 滚动条
      scrollbar: {
        el: ".swiper-scrollbar",
        hide: true,
        draggable: true, //是否可拖动条
        snapOnRelease: true, //false释放滚动条时slide不会自动贴合
        dragSize: 500,
      },

    });

    /*鼠标移入停止轮播,鼠标离开 继续轮播*/
    var container = document.getElementById('swiperContainer');
    container.onmouseover = function () {
      Myswiper.autoplay.stop();
    };
    container.onmouseout = function () {
      Myswiper.autoplay.start();
    }
  },


//css
<style scoped lang="scss">
.swiper-container {
  position: relative;
  display: inline-block;
  width: 100%;
  height: 24rem;
  overflow: hidden;
  background-color: #ECECEC;
  --swiper-pagination-color: #ffbb00; // 分页器颜色
  /* 设置Swiper风格 */
  --swiper-theme-color: #ff6600;
  /* 单独设置按钮颜色 */
  --swiper-navigation-color: #00aaff;
  /* 设置按钮大小 */
  --swiper-navigation-size: 30px;

  h1 {
    color: #fff;
    position: relative;
    top: 40%;
  }

  .swiper-slide {
    img {
      width: 100%;
      height: 100%;
    }

    .bannerTitle {
      line-height: 2rem;
      width: 100%;
      position: absolute;
      height: 2rem;
      bottom: 0px;
      left: 10px;
      background: rgba(0, 0, 0, 0.5);
      color: rgba(255, 255, 255, 0.9);
      z-index: 9999;

      .titleC {
        width: 26rem;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
      }
    }
  }
}
</style>

上一篇文章,

vue3+elementPlus:el-select选择器里添加按钮button_意初的博客-CSDN博客vue3+elementPlus:el-select选择器里添加按钮button,在el-select的option后面添加buttonhttps://blog.csdn.net/weixin_43928112/article/details/133681154

相关推荐
AC赳赳老秦2 小时前
外文文献精读:DeepSeek翻译并解析顶会论文核心技术要点
前端·flutter·zookeeper·自动化·rabbitmq·prometheus·deepseek
小宇的天下2 小时前
Calibre 3Dstack --每日一个命令day18【floating_trace】(3-18)
服务器·前端·数据库
毕设源码-钟学长2 小时前
【开题答辩全过程】以 基于web技术的酒店信息管理系统设计与实现-为例,包含答辩的问题和答案
前端
css趣多多3 小时前
this.$watch
前端·javascript·vue.js
Code小翊3 小时前
JS语法速查手册,一遍过JS
javascript
干前端3 小时前
Vue3虚拟滚动列表组件进阶:不定高度及原理分析!!!
前端·前端组件
子春一3 小时前
Flutter for OpenHarmony:构建一个 Flutter 天气卡片组件,深入解析动态 UI、响应式布局与语义化设计
javascript·flutter·ui
雨季6663 小时前
Flutter 三端应用实战:OpenHarmony “极简文本行数统计器”
开发语言·前端·flutter·ui·交互
有来技术3 小时前
ASP.NET Core 权限管理系统(RBAC)设计与实现|vue3-element-admin .NET 后端
vue.js·后端·c#·asp.net·.net
qq_12498707533 小时前
基于springboot的林业资源管理系统设计与实现(源码+论文+部署+安装)
java·vue.js·spring boot·后端·spring·毕业设计·计算机毕业设计