<template>
  <div class='slider'>
    <div class='slider-container' :style="{transform: 'translateX(' + position + 'px)'}">
      <div v-for='(slide, index) in slides' :key='index' class='slider-slide'>
        {{ slide }}
      </div>
    </div>
    <button class='slider-button' @click='prevSlide'><</button>
    <button class='slider-button' @click='nextSlide'>></button>
  </div>
</template>
<script>
  export default {
    data() {
      return {
        slides: ['Slide 1', 'Slide 2', 'Slide 3'], // 轮播内容
        position: 0, // 当前轮播位置
        slideWidth: 300, // 单个轮播项宽度
        totalWidth: 0 // 轮播容器总宽度
      };
    },
    mounted() {
      this.totalWidth = this.slides.length * this.slideWidth;
    },
    methods: {
      prevSlide() {
        if (this.position < 0) {
          this.position += this.slideWidth;
        }
      },
      nextSlide() {
        if (this.position > -(this.totalWidth - this.slideWidth)) {
          this.position -= this.slideWidth;
        }
      }
    }
  };
</script>
<style>
  .slider {
    position: relative;
    overflow: hidden;
  }
  .slider-container {
    display: flex;
    transition: transform 0.5s ease-in-out;
  }
  .slider-slide {
    width: 300px;
    height: 200px;
    margin-right: 20px;
    background-color: #ccc;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 32px;
  }
  .slider-button {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background-color: transparent;
    border: none;
    color: #fff;
    font-size: 24px;
    cursor: pointer;
    outline: none;
  }
  .slider-button:first-child {
    left: 0;
  }
  .slider-button:last-child {
    right: 0;
  }
</style>
<p>该轮播组件非常简单,它包含一个轮播容器和两个按钮,用于切换轮播项。组件的样式基于 flex 布局,并使用了 CSS3 的 transition 属性来实现轮播动画。</p>
<p>当点击左右按钮时,组件会根据当前位置来更新轮播容器的 transform 属性,从而实现轮播动画。该组件还包含一些基本的属性和方法,例如 slideWidth、totalWidth、position、prevSlide() 和 nextSlide(),这些属性和方法都是为了方便轮播功能的实现。</p>
Vue 轮播组件实现教程:简单易懂的示例代码

原文地址: https://www.cveoy.top/t/topic/oZzG 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录