前端Vue自定义轮播图swiper 轮播图dot 轮播图指示indicate

前端Vue自定义轮播图swiper 轮播图dot 轮播图指示indicate,下载完整代码请访问uni-app插件市场地址:ext.dcloud.net.cn/plugin?id=1…

效果图如下:

1.png

2.png

3.png

使用方法




<!-- swiperList:轮播数组  imgField: 轮播图片字段  @click: 轮播图条目点击-->



<cc-dotSwiper :swiperList="bannerList" imgField="imgSrc"  @click="swiperItemClick"></cc-dotSwiper>



HTML代码实现部分




<template>



    <view class="content">



        <!-- swiperList:轮播数组  imgField: 轮播图片字段  @click: 轮播图条目点击-->


        <cc-dotSwiper :swiperList="bannerList" imgField="imgSrc"  @click="swiperItemClick"></cc-dotSwiper>


    </view>


</template>


<script>


    export default {


        data() {


            return {


                bannerList: [{"imgSrc":"https://cdn.pixabay.com/photo/2016/07/18/04/19/canton-1525284_1280.jpg"},


                {"imgSrc":"https://cdn.pixabay.com/photo/2022/04/27/12/30/switzerland-7160290_1280.jpg"},


                {"imgSrc":"https://cdn.pixabay.com/photo/2017/09/05/17/28/guangzhou-2718517_1280.jpg"}


                ]


            }


        },


        methods: {


            swiperItemClick(item) {


                console.log('点击轮播图条目 = ' + item);


                uni.showModal({


                    title:'点击轮播图条目',


                    content:'点击轮播图条目 = ' +  JSON.stringify(item)


                })


            }


        }


    }


</script>


<style>


    .content {


        display: flex;


        flex-direction: column;


        background-color: aliceblue;


        height: 100vh;


    }


</style>


</style>


组件实现代码




<template>



<view class="swiper-box">



<swiper class="swiper" :indicator-dots="false" :autoplay="true" :interval="3000" :duration="500"


:circular="true" @change="change">


<swiper-item v-for="(item,index) in swiperList" :key="index">


<view class="swiper-item" @click="swiperItemClick(item)">


<image class="swiper-item" :src="item[imgField]" mode=""></image>


</view>


</swiper-item>


</swiper>


<!-- dots -->


<view class="dtos">


<view class="dto" :class="{'dto-active':index===currIndex}" v-for="(item,index) in swiperList" :key="index">


</view>


</view>


</view>


</template>


<script>


export default {


props: {


// 轮播图数组


swiperList: {


type: Array,


default: []


},


// 图片字段


imgField: {


type: String,


default: 'imgSrc'


},


},


data() {


return {


currIndex: 0,


};


},


methods: {

change(s) {

this.currIndex = s.detail.current;

},

swiperItemClick(item) {

this.$emit("click", item);

}

}

}

</script>

<style lang="scss" scoped>

.swiper-box {

width: 100%;

height: auto;

background: #fff;

}

.swiper {

margin-left: 3vw;

width: 94vw;

height: 200px;

margin: 25upx auto 0;

}

.swiper-item {

width: 690upx;

height: 200px;

}

.dtos {

display: flex;

justify-content: center;

margin-top: 22upx;

height: 16px;

.dto {

width: 14upx;

height: 14upx;

border-radius: 500upx;

background: #e5e5e5;

margin: 0 7upx;

transition: width 0.5s;

}

.dto-active {

// background: #c2c2c2;

background: orangered;

width: 26upx;

}

}

</style>

© 版权声明
THE END
喜欢就支持一下吧
点赞0

Warning: mysqli_query(): (HY000/3): Error writing file '/tmp/MYTEHbgS' (Errcode: 28 - No space left on device) in /www/wwwroot/583.cn/wp-includes/class-wpdb.php on line 2345
admin的头像-五八三
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

图形验证码
取消
昵称代码图片