当前位置: 首页 > news >正文

vue3使用swiper实现首页图片轮播并自定义左右箭头样式及分页器样式

安装vue-awesome-swiper

npm intall vue-awesome-swiper --save

安装swiper

npm install swiper --save

关键部分代码

<template><div><swiper :modules="modules" navigation :pagination="{ clickable: true }" :autoplay="{ delay: 3000, disableOnInteraction: false }"><swiper-slide v-for="(image, index) in banners" v-bind:key="index"><img :src="image" class="swiper-image" /></swiper-slide></swiper></div>
</template><script>
import "swiper/css/navigation";
import "swiper/css/pagination";
import { Pagination, Navigation,Autoplay  } from "Swiper";
import { Swiper, SwiperSlide } from "vue-awesome-swiper";
import "swiper/css";
import "swiper/css/pagination";
import { ref, reactive } from "vue";import banner1 from "../assets/images/home/banner1.png";
import banner2 from "../assets/images/home/banner2.png";
import banner3 from "../assets/images/home/banner3.png";
import banner4 from "../assets/images/home/banner4.png";
export default {components: {Swiper,SwiperSlide,},setup() {let banners = reactive([banner1, banner2, banner3, banner4]);return {banners,modules: [Navigation, Pagination,Autoplay],};},
};
</script><style lang="scss" scoped>
::v-deep .swiper-button-next:after, .swiper-rtl .swiper-button-prev:after {content: none;
}
::v-deep  .swiper-button-prev:after, .swiper-rtl .swiper-button-next:after{content: none;
}
::v-deep .swiper-button-next {width: 62px;height: 62px;background-image: url(../assets/images/home/btn-next.png);background-size: 62px auto;margin-right: 30px;
}
::v-deep .swiper-button-prev{width: 62px;height: 62px;background-image: url(../assets/images/home/btn-pre.png);background-size: 62px auto;margin-left: 30px;
}
::v-deep .swiper-pagination-bullet{width: var(--swiper-pagination-bullet-width);height: var(--swiper-pagination-bullet-height);border-radius: 10px;background: #d1d1d1;opacity:1;
}
::v-deep .swiper-pagination-bullet-active{width: var(--swiper-pagination-bullet-width);height: var(--swiper-pagination-bullet-height);border-radius: 10px;background:#20cf89 ;
}
::v-deep .swiper-pagination{margin-bottom: 47px;
}
.swiper-image {width: 100%;height: 695px;object-fit: cover; /* 保持宽高比,不裁剪图片 */}
}
</style>

效果

在这里插入图片描述

vue版本

"dependencies": {"swiper": "^8.4.7","vue": "^3.4.37","vue-awesome-swiper": "^5.0.1","vue-router": "^4.4.3","vuex": "^4.1.0"},

http://www.mrgr.cn/news/12395.html

相关文章:

  • ‌分布式计算技术与复杂算法优化:‌现代数据处理的基石
  • Chromium编译指南2024 - Android篇:安装并运行(九)
  • pyflink中UDTF和UDF的区别
  • PPT到PDF转换器:一个功能强大的Python GUI应用(unzip,convert,replace,merge)
  • 18行为型设计模式——观察者模式
  • CSS学习【margin为负值】
  • Python selenium爬虫被检测到,该怎么破?
  • UE5 多个类选择界面生成
  • 小程序自定义组件配合插槽和组件传值
  • 安卓全盘加密 (Full-Disk Encryption, FDE) 概述
  • vector相关功能的底层实现
  • Java13 网络编程
  • 2024中国国际大数据博览会:引领数字变革,共创未来辉煌
  • Unity坐标系四元数转角度和轴向
  • 金融基础知识-权证投资+基金投资+债券投资
  • C_04_数组学习
  • IS-IS路由原理详解
  • C#-ConcurrentDictionary用于多线程并发字典
  • RabbitMQ如何保证消息不丢失(面试版)
  • 关于Avalonia程序在Linux上运行画面不显示的问题详解