首页  >  问答  >  正文

Vue3:根据父div的类有条件地为子显示div

我是 Vue 新手,我正在研究这个 Vue3 轮播插件中的活动类示例。我想仅显示 carousel__slide--active 类的文本和链接 div,但现在所有 carousel__items 都会显示其相应的文本和链接。看来我应该能够仅针对子类 carousel__slide--active 执行 v-if 或 v-bind 来显示 image.text 和 image.link,但我无法让其中任何一个工作。任何建议将不胜感激。

相关代码:

<Slide v-for="(image) in stack.images" :key="image">
  <div class="carousel__item">
    <img
      :src="image.src"
      :alt="image.alt"
      :text="image.text"
      :link="image.link"
    />
    <!-- <div class="{ 'carousel__slide--active': true }"> -->
    <!-- <div v-bind:class="{ 'carousel__slide--active': isActive }"> -->
      <div class="overlay-shown">
        <div v-if="image.text" class="stack-text">{{ image.text }}
        </div>
        <div v-if="image.link" class="stack-text">
          <a v-bind:href="image.link">View Video</a>
        </div>
      </div>
    <!-- </div> -->
  </div>
</Slide>

<style>
.carousel__slide--active > .carousel__item {
  transform: scale(1);
  box-shadow: 8px 8px 5px -4px rgba(0, 0, 0, 0.5);
  z-index: 999 !important;
}

.overlay-shown {
  width: 600px;
  height: auto;
  background-color: #006eb7;
}
</style>

P粉287345251P粉287345251236 天前356

全部回复(1)我来回复

  • P粉080643975

    P粉0806439752024-02-26 14:50:06

    你也可以使用css来解决这个问题,但是如果你想使用“vue-way”,你需要检查当前幻灯片才能确定是否显示内容。

    有关使用的文档(我想说)不是很清楚,但是如果您查看源代码,您会发现 Carousel 组件确实使用 modelValue 来绑定当前索引。

    模板:

    
    
    sssccc
    

    所以你有索引(i in v-for="(image, i) in stack.images")并将其与currentSlide进行比较

    回复
    0
  • 取消回复