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

随着技术的发展,开发的复杂度也越来越高,传统开发方式将一个系统做成了整块应用,经常出现的情况就是一个小小的改动或者一个小功能的增加可能会引起整体逻辑的修改,造成牵一发而动全身。通过组件化开发,可以有效实现单独开发,单独维护,而且他们之间可以随意的进行组合。大大提升开发效率低,降低维护成本。

组件化对于任何一个业务场景复杂的前端应用以及经过多次迭代之后的产品来说都是必经之路。组件化要做的不仅仅是表面上看到的模块拆分解耦,其背后还有很多工作来支撑组件化的进行,例如结合业务特性的模块拆分策略、模块间的交互方式和构建系统等等 。

本文给大家介绍的组件:

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

阅读全文下载完整组件代码请关注微信公众号: 前端组件开发

 

d848d5658a07453c843277846948c608.png

效果图如下:

format,png

编辑切换为居中

添加图片注释,不超过 140 字(可选)

format,png

编辑切换为居中

添加图片注释,不超过 140 字(可选)

format,png

编辑切换为居中

添加图片注释,不超过 140 字(可选)

 

 

#### 使用方法

```使用方法

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

```

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端组件开发

你的钟意将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值