javascript - 如何在BootstrapVue的Carousel组件中自定义控件和指示器?

标签 javascript css vue.js vuejs2 bootstrap-vue

代码如下:

<template>
  <div>
    <b-carousel
      id="carousel-upper"
      v-model="slide"
      :interval="3000"
      fade
      controls
      indicators
      @sliding-start="onSlideStart"
      @sliding-end="onSlideEnd"
    >
      <b-carousel-slide
        img-src="https://licota.ru/system/sliders/attachments/55ba/10cf/7372/763c/8600/0002/full/banner-2.jpg?1438257358"
      ></b-carousel-slide>
      <b-carousel-slide
        img-src="https://licota.ru/system/sliders/attachments/55ba/10cf/7372/763c/8600/0003/full/banner-3.jpg?1438257359"
      ></b-carousel-slide>
      <b-carousel-slide
        img-src="https://licota.ru/system/sliders/attachments/55ba/10ce/7372/763c/8600/0001/full/banner-1.jpg?1438257358"
      ></b-carousel-slide>
      <b-carousel-slide
        img-src="https://licota.ru/system/sliders/attachments/55ba/10ce/7372/763c/8600/0000/full/banner-0.jpg?1438257357"
      ></b-carousel-slide>
    </b-carousel>
  </div>
</template>

<script lang="ts">
import { CarouselData } from '../types/carousel'
import Vue from 'vue'

export default Vue.extend({
  data: (): CarouselData => {
    return {
      slide: 0,
      sliding: false
    }
  },
  methods: {
    onSlideStart(slide: number) : void {
      this.sliding = true
    },
    onSlideEnd(slide: number) : void {
      this.sliding = false
    }
  }
})
</script>

<style lang="sass" module>
  ?
</style>

HTML组件截图:

enter image description here

例如,我想让箭头更大、颜色不同,并且用圆圈而不是短线。

我尝试了很多东西,但我不明白如何通过Vue.js的样式机制查找和更改Bootstrap的类。

最佳答案

您的<style>标签有 module CSS Modules 的属性但这可能会阻止您尝试应用于轮播的任何样式,因此如果不是故意的,请先将其删除。

要调整 V 形控件的大小,请使用 heightwidth关于图标类:

.carousel-control-prev-icon,
.carousel-control-next-icon {
  height: 100px !important;
  width: 100px !important;
}

颜色比较棘手,因为 V 形实际上是 background-image SVG(例如,这就是为什么需要高度/宽度而不是 font-size )。对于这些,请执行以下操作:

.carousel-control-prev-icon {
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23ff0000' viewBox='0 0 8 8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3E%3C/svg%3E") !important;
}

.carousel-control-next-icon {
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23ff0000' viewBox='0 0 8 8'%3E%3Cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3E%3C/svg%3E") !important;
}

更改 fill根据需要属性十六进制值。

关于javascript - 如何在BootstrapVue的Carousel组件中自定义控件和指示器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65669098/

相关文章:

javascript - 如何使用 HTML 和 JavaScript 在单击按钮时播放音频文件?

javascript - 如何将多个前置日期存储到 localStorage?

jquery - 说明 boxxy 框中不是 "wrapping"

css - 垂直纵横比媒体查询

javascript - Vue - 在组件或路由 View 中使用 axios?

javascript - 如何获得随机光色

javascript - 如何从 Selenium 中调用 JavaScript 函数?

html - 想显示悬停样式

vue.js - 遍历 Vuex 存储对象

javascript - 使用 VS 代码调试 Vue.js 应用程序。错误未验证断点