el-carousel走马灯效果

image.png
  • 代码
  <div class="image-main">
      <div class="message-box">
        <el-carousel
          ref="carousel"
          @change="handleCarouselChange"
          :interval="4000"
          :hover-stop="true"
          arrow="never"
          :loop="true"
          height="480px"
        >
          <el-carousel-item v-for="each in bottomIconList">
            <div class="slide-boxes">
              <div
                class="card-1"
                v-for="item in each.list"
              >
                <img
                  :src="require('@/assets/images/' + item.src)"
                  alt=""
                />
                <div class="slide-boxes-title">
                  <i class="slide-boxes-subtitle-dit"></i>
                  <div class="slide-boxes-title-text">
                    洛杉矶发生就发生
                  </div>
                </div>
                <div class="slide-boxes-subtitle">
                  发动机手机发的啦
                </div>
              </div>
            </div>
          </el-carousel-item>
        </el-carousel>
        <div class="carousel-arrow left-arrow" @click="prevSlide">
          <img :src="leftArrow" alt="left arrow" />
        </div>
        <div class="carousel-arrow right-arrow" @click="nextSlide">
          <img :src="rightArrow" alt="left arrow" />
        </div>
      </div>
    </div>
      leftArrow: require("@/assets/images/detail-carousel-arrow-left-gray.png"),
      rightArrow: require("@/assets/images/detail-carousel-arrow-right.png"),
 bottomIconList: [
{
 list:[
        { src: "bottom3.png" },
        {
          src: "bottom2.png",
        },
        {
          src: "bottom1.png",
        },
 ]
},
{
 list:[
        { src: "bottom3.png" },
        {
          src: "bottom2.png",
        },
        {
          src: "bottom1.png",
        },
 ]
},
{
 list:[
        { src: "bottom3.png" },
        {
          src: "bottom2.png",
        },
        {
          src: "bottom1.png",
        },
 ]
},
],
  handleCarouselChange(currentIndex) {
      this.leftArrow =
        currentIndex === 0
          ? require("@/assets/images/detail-carousel-arrow-left-gray.png")
          : require("@/assets/images/detail-carousel-arrow-left.png");
      this.rightArrow =
        currentIndex === this.bottomIconList.length - 1
          ? require("@/assets/images/detail-carousel-arrow-right-gray.png")
          : require("@/assets/images/detail-carousel-arrow-right.png");
    },
 nextSlide() {
      this.$refs.carousel.next();
    },
    prevSlide() {
      this.$refs.carousel.prev();
    },

//card
.carousel-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  font-size: 30px;
  color: #fff;
  padding: 10px;
  cursor: pointer;
  z-index: 10;
}

.left-arrow {
  left: -110px;
}

.right-arrow {
  right: -110px;
}
.image-main {
  margin: 0 auto 10px auto;
  width: 80%;
}

.message-box {
  display: flex;
  flex-direction: column;
  max-width: 1520px;
  position: relative;
  height: auto;
}

.slide-boxes {
  display: flex;
  margin: 0 auto;
  justify-content: space-between;
  align-items: center;
  padding: 10px 10px;
}
.slide-boxes .card-1 {
  cursor: pointer;
  width: calc(100% / 3 - 20px);
  padding: 0 0 30px 0;
  background: #ffffff;
  box-shadow: 0px 2px 8px 0px rgba(0, 0, 0, 0.1);
  border-radius: 10px;
  overflow: hidden;
  height: 440px;
  display: flex;
  flex-direction: column;
}
.slide-boxes .card-1 .slide-boxes-subtitle-dit {
  display: block;
  background: #1382fc;
  border-radius: 3px;
  width: 8px;
  height: 20px;
  margin: 0 11px 0 0px;
}
.slide-boxes .card-1 img {
  border-radius: 10px 10px 0 0;
  height: 240px;
}
.slide-boxes-title {
  padding: 27px 20px;
  display: flex;
  align-items: center;
  background: linear-gradient(to bottom, #f4f8ff, #e8f2ff);
  font-weight: 500;
  font-size: 26px;
  color: #000000;
}
.slide-boxes-title-text {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.slide-boxes-subtitle {
  font-weight: 500;
  font-size: 20px;
  color: #9ea7aa;
  line-height: 30px;
  margin: 20px 20px 0px 20px;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3; /* 这里的3表示最多显示3行 */
  overflow: hidden;
  text-overflow: ellipsis;
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容