无法呈现的图像动态地旋转木马Vuejs(Cannot render images dynamical

2019-10-29 13:34发布

我已经设置了使用引导-VUE一个转盘。 我用一个for循环和对象数组动态创建该组件。 在每个滑动的,我将包括文本以及一个背景图像。 我能够动态地呈现文本。 然而,背景图像只出现在第一张幻灯片。 对于后续的幻灯片,图像将不再被渲染。 似乎是什么问题? 下面是我的代码和结果的截图

更新:我仍然没能得到这个工作。 谁能帮我?

<template>
  <div>
    <b-carousel
      id="carousel-1"
      v-model="slide"
      :interval="4000"
      controls
      indicators
      background="#ababab"
      style="text-shadow: 1px 1px 2px #333;"
      @sliding-start="onSlideStart"
      @sliding-end="onSlideEnd"
    >
      <!-- Text slides with image -->
      <b-carousel-slide
        v-for="item in carouselItems"
        :key="item.id"
        :text="item.text"
        :style="{ 'background-image' : 'url(\'' + item.image + '\')' }"
      ></b-carousel-slide>
    </b-carousel>
    <ProductList/>
  </div>
</template>

<script>
// 1. Loading images asychronously later on from S3
// https://stackoverflow.com/questions/50659676/how-to-load-image-src-url-in-vuejs-asyncronously
import ProductList from "@/components/product/ProductList.vue";

export default {
  components: {
    ProductList
  },
  data() {
    return {
      carouselItems: [
        {
          id: 1,
          image: "https://source.unsplash.com/LAaSoL0LrYs/1920x1080",
          text: "Nulla vitae elit libero, a pharetra augue mollis interdum. (1)"
        },
        {
          id: 2,
          image: "https://source.unsplash.com/LAaSoL0LrYs/1920x1080",
          text: "Nulla vitae elit libero, a pharetra augue mollis interdum. (2)"
        },
        {
          id: 3,
          image: "https://source.unsplash.com/LAaSoL0LrYs/1920x1080",
          text: "Nulla vitae elit libero, a pharetra augue mollis interdum. (3)"
        }
      ],
      slide: 0,
      sliding: null
    };
  },
  methods: {
    onSlideStart(slide) {
      this.sliding = true;
    },
    onSlideEnd(slide) {
      this.sliding = false;
    }
  }
};
</script>

<style scoped>
.carousel-item {
  height: 100vh;
  min-height: 350px;
  background: no-repeat center center scroll;
  -webkit-background-size: cover;
  -moz-background-size: cover;
  -o-background-size: cover;
  background-size: cover;
}
</style>

当它第一次呈现旋转木马

随后的幻灯片不显示图像

回到回滑动1和背景图像消失

Answer 1:

当您使用引导-VUE库,你可以使用“标题”属性而不是“文本”和“IMG-SRC”,而不是风格:背景。 由于b-carousel-slide部件覆盖样式标签。

<b-carousel-slide
        v-for="item in carouselItems"
        :key="item.id"
        :caption="item.text"
        :img-src="item.image"
      ></b-carousel-slide>

如果你想为你的crousal自定义样式,你可以设置一个附加的类ATTR你的标签,如:

<b-carousel-slide
      class="MyCustomClass"
      ....
      ></b-carousel-slide>
<style>
    .MyCustomClass {
        width: 100%;    
        object-fit: cover; 
    }
</style>

但要注意,你所使用的转盘或者是反应灵敏,也全宽。 我觉得你的问题是别的东西。



文章来源: Cannot render images dynamically to carousel Vuejs