vue3+swiper11 横向的循环切换图片

利用Swiper制作横向循环图片

<template>
    <div class="summaryE">
        <div class="E_two">
            <swiper 
                :slidesPerView="5" 
                loop
                :autoplay="{ delay: 5000, disableOnInteraction: true }"
                :navigation="true" 
                :pagination="{ clickable: true  }"
                :scrollbar="{ draggable: true }" 
                :space-between="0" 
                :modules="modules" 
                effect="coverflow"
                :coverflowEffect="{
                    rotate: 0, //slide做3d旋转时Y轴的旋转角度
                    stretch: 1, //每个slide之间的拉伸值,越大slide靠得越紧。5.3.6 后可使用%百分比
                    depth: 80, //slide的位置深度。值越大z轴距离越远,看起来越小。
                    modifier: 7, //depth和rotate和stretch的倍率,相当于depth*modifier、rotate*modifier、stretch*modifier,值越大这三个参数的效果越明显
                    slideShadows: false //是否开启slide阴影
                }"
                @mouseenter="enter" 
                @mouseleave="leave" 
                @swiper="onSwiper" 
                @slideChange="onSlideChange">
                <swiper-slide v-for="(item, index) in arrList" :key="index" class="swiperItem">
                        <!-- <img :src="item.img" alt="" /> -->
                        <img :src="item.img" class="hzhb"/>
                </swiper-slide>
            </swiper>
        </div>
    </div>
</template>

<script setup>

 import { useRouter } from 'vue-router'
import { ref,defineProps, toRaw ,onMounted} from "vue";

 const router = useRouter()


onMounted(() => {
 
});
import { Swiper, SwiperSlide } from "swiper/vue";
import "swiper/css";
import "swiper/css/navigation";
import "swiper/css/pagination";
import 'swiper/css/effect-coverflow';  //effect为fade时必须引入,否则可能出现只切换一次就不自动切换的情况

import { Autoplay, Navigation, Pagination, Scrollbar, A11y ,EffectCoverflow} from "swiper/modules";

let modules = [Autoplay, Navigation, Pagination, Scrollbar, A11y,EffectCoverflow];

//定义swiperNew,目的获取非响应式swiper
let swiperNew = null;
 
//鼠标移入
const enter = () => {
  swiperNew.autoplay.stop();
};
//鼠标移出
const leave = () => {
  swiperNew.autoplay.start();
};
const onSwiper = (swiper) => {
  // console.log(swiper);
 
  swiperNew = toRaw(swiper); //拿到swiper对象再转换为非响应式
};
const rightClick=()=>{
    swiperNew.slidePrev()
}
const leftClick=()=>{
    swiperNew.slideNext()

}
const onSlideChange = () => {
  // console.log("slide change");
};

const arrList = ref([
    {
        img:require('@/assets/computer/rongyu/r1.png'),
    },{
        img:require('@/assets/computer/rongyu/r1.png'),
    },{
        img:require('@/assets/computer/rongyu/r1.png'),
    },{
        img:require('@/assets/computer/rongyu/r1.png'),
    },{
        img:require('@/assets/computer/rongyu/r1.png'),
    },{
        img:require('@/assets/computer/rongyu/r1.png'),
    },
 ])
</script>

<style scoped>

.E_two{
    width: 100%;
}
.hzhb{

    width: 100%;
    height: auto;
}
</style>

效果

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值