Vue3中使用Swiper自定义导航按钮位置和自定义滚动过度效果

1.自定义导航器位置

可以在swiper容器外,再套一个div盒子,然后给外面的盒子加上相对定位。这样在移动到导航按钮位置,相对的是外面div的位置,而不是swiper容器的,就不会被swiper容器遮挡住了。

2.自定义滚动过度效果

给.swiper-wrapper加上过渡属性,并且加上!important,因为原本的过渡效果是行内样式添加,如果直接设置优先级不够,不会生效。

备注:在设置css样式时,给swiper容器加上:deep深度作用,这样swiper里面的样式就自由支配了。

<script setup lang="ts">
import { reactive,ref } from "vue";
import { Navigation } from 'swiper';
import { Swiper, SwiperSlide } from 'swiper/vue';
import 'swiper/css';
import 'swiper/css/navigation';
const modules = [Navigation]
</script>
<template>
    <div class="container">
      <swiper 
        :modules="modules" 
        :slides-per-view="5" 
        :slides-per-group="5" 
        :space-between="10" 
        navigation>
        <swiper-slide>Slide 1</swiper-slide>
        <swiper-slide>Slide 2</swiper-slide>
        <swiper-slide>Slide 3</swiper-slide>
        <swiper-slide>Slide 4</swiper-slide>
        <swiper-slide>Slide 5</swiper-slide>
        <swiper-slide>Slide 6</swiper-slide>  
        <swiper-slide>Slide 6</swiper-slide>
        <swiper-slide>Slide 6</swiper-slide>
        <swiper-slide>Slide 6</swiper-slide>
        <swiper-slide>Slide 6</swiper-slide>
      </swiper>
    </div>
</template>
.container{
    position: relative;
  }
  :deep(.swiper) {
    position: initial;
    .swiper-wrapper{
      transition: all 1s !important;
    }
    .swiper-slide {
      width: 240px;
      height: 305px;
      background-color: #27bb9a;
    }
    .swiper-button-prev {
      left: 1190px;
    }
    .swiper-button-next {
      left: 1220px;
    }
    .swiper-button-prev,
    .swiper-button-next {
      width: 20px;
      height: 20px;
      background-color: #27ba9b;
      top: 80px;
      &::after {
        font-size: 12px;
        color: white;
      }
    }
    .swiper-button-disabled{
      background-color:#ccc;
      cursor:not-allowed;
      pointer-events:initial;
    }
  }

最终的效果:

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值