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

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

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

前端vue自定义轮播图swiper 轮播图dot 轮播图指示indicate,第1张
前端vue自定义轮播图swiper 轮播图dot 轮播图指示indicate,第2张
前端vue自定义轮播图swiper 轮播图dot 轮播图指示indicate,第3张

#### 使用方法

```使用方法

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

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

```

#### HTML代码实现部分

```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>

```


https://www.xamrdz.com/web/2s71995182.html

相关文章: