自定义轮播图组件样式

前言

如果使用一个组件库的组件,如mint-ui的swipe组件,但indicators样式不想要默认的样式(简单的圆点),即自定义组件样式。

 

解决思路

1.重写样式。

找到组件中原样式的名字,重写样式。像mint-ui中swipe indicator的样式为 .mint-swipe-indicator 

.mint-swipe-indicator {
  width: 30px;
  height: 30px;
  background: url(../../assets/logo.png);
}
.mint-swipe-indicator.is-active {
  background: red;
}

注:如果你每一个swipe组件都想要一样的自定义样式,那我们可以先使用自定义样式把它封装成组件,再复用该组件即可。

但是每一个样式都得看看它的源码也挺麻烦的~

 

2.在页面上添加按钮结构

2.1 我们将swipe组件封装起来,swipe.vue

2.2 在页面上添加按钮结构,给mt-swipe绑定@change="handleChange"事件,用于处理自定义按钮的active状态

<template>
  <div class="my-swipe">
    <!-- mint-ui组件 -->
    <mt-swipe class='swiper' @change="handleChange" :showIndicators="false">
        <mt-swipe-item class="banner-item" v-for="item in data" :key="item.key_word" :data-id="item.key_word">
          <img class='item-image' :src="item.img.url">
        </mt-swipe-item>
    </mt-swipe>

    <!-- 在组件外添加轮播图按钮 -->
    <div class="my-swipe-indicators">
        <div class="my-swipe-indicator"
                v-for="(item,index) in data" :key="item.key_word"
                :class="{ 'is-active': index === mySwipeIndex }">
        </div>
    </div>
  </div>
</template>

<script scoped>
export default {
  props: ["data"],
  data() {
    return {
      mySwipeIndex: 0
    };
  },
  methods: {
    handleChange(index) {
      console.log(index);
      this.mySwipeIndex = index;
    }
  }
};
</script>
<style>
.my-swipe {
  width: 100%;
}
.my-swipe-indicators {
  overflow: hidden;
  width: 160px;
  margin: 0 auto;
}
.my-swipe-indicator {
  float: left;
  width: 30px;
  height: 30px;
  margin: 5px;
  background: url(../assets/logo.png);
}
.my-swipe-indicator.is-active {
  background: red;
}
</style>

2.3 调用该组件

<my-swipe :data="bannerArr">
</my-swipe>

 

效果:

1.默认样式效果:

 

2.自定义样式效果:(很丑,但是很温柔~就简单的一个示例效果)

 

 

 

结束~

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值