【升级玩法】js用push、unshift、shift、pop或splice实现5张卡片(可以自由定义更多)轮播图效果banner、swiper

简介: 【升级玩法】js用push、unshift、shift、pop或splice实现5张卡片(可以自由定义更多)轮播图效果banner、swiper


代码直接拷贝吧

<template>
  <div class="sg-body">
    <div class="sg-swiper">
      <div class="sg-sipwer-containers">
        <div
          class="sg-swiper-container"
          v-for="(a, i) in sipwers"
          :key="i"
          :position="arr[i]"
        >
          卡片{{ a }}
        </div>
      </div>
      <div class="sg-swiper-btns">
        <div class="sg-swiper-left-btn" @click="left">左</div>
        <div class="sg-swiper-right-btn" @click="right">右</div>
      </div>
    </div>
  </div>
</template>
<script>
export default {
  data() {
    return {
      sipwers: [1, 2, 3, 4, 5, 6],
      arr: []
    };
  },
  mounted() {
    this.arr = [...Array(this.sipwers.length || 0)].map((v, i) => i);
  },
  methods: {
    left() {
      this.arr.push(this.arr.shift()); //方法一:向左移动数组元素
      //   this.arr.splice(this.arr.length - 1, 0, this.arr.shift()); //方法二:向左移动数组元素
    },
    right() {
      this.arr.unshift(this.arr.pop()); //方法一:向右移动数组元素
      //   this.arr.splice(0, 0, this.arr.pop()); //方法二:向右移动数组元素
    }
  }
};
</script>
<style lang="scss" scoped>
.sg-body {
  .sg-swiper {
    position: relative;
    width: 1000px;
    height: 300px;
    .sg-sipwer-containers {
      margin: 0 auto;
      width: 80%;
      height: 100%;
      position: relative;
      $card_width: 400px;
      $card_height: 300px;
      $card_offset: 250px;
      .sg-swiper-container {
        transition: 0.382s ease;
        border-radius: 8px;
        width: $card_width;
        height: $card_height;
        opacity: 0;
        pointer-events: none;
        display: flex;
        justify-content: center;
        align-items: center;
        font-size: 100px;
        font-weight: bold;
        color: white;
        z-index: 0;
        position: absolute;
        margin: auto;
        top: 0;
        left: calc((100% - #{$card_width}) / 2);
        bottom: 0;
        transform: scale(0);
        background-color: #409eff;
        &[position="0"] {
          left: calc((100% - #{$card_width}) / 2 - #{$card_offset * 1.3});
          opacity: 0.5;
          z-index: 1;
          transform: scale(0.5);
          pointer-events: auto;
        }
        &[position="1"] {
          left: calc((100% - #{$card_width}) / 2 - #{$card_offset * 0.8});
          opacity: 0.8;
          z-index: 2;
          transform: scale(0.8);
          pointer-events: auto;
        }
        &[position="2"] {
          opacity: 1;
          z-index: 3;
          transform: scale(1);
          pointer-events: auto;
        }
        &[position="3"] {
          left: calc((100% - #{$card_width}) / 2 + #{$card_offset * 0.8});
          opacity: 0.8;
          z-index: 2;
          transform: scale(0.8);
          pointer-events: auto;
        }
        &[position="4"] {
          left: calc((100% - #{$card_width}) / 2 + #{$card_offset * 1.3});
          opacity: 0.5;
          z-index: 1;
          transform: scale(0.5);
          pointer-events: auto;
        }
      }
    }
    .sg-swiper-btns {
      position: absolute;
      width: 100%;
      height: 100%;
      left: 0;
      top: 0;
      display: flex;
      justify-content: space-between;
      align-items: center;
      user-select: none;
      z-index: 0;
      & > * {
        border-radius: 100%;
        width: 50px;
        height: 50px;
        display: flex;
        justify-content: center;
        align-items: center;
        font-size: 18px;
        color: #409eff;
        font-weight: bold;
        background-color: white;
        box-sizing: border-box;
        box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
        border: 1px solid #eee;
        transition: 0.382s ease;
        cursor: pointer;
        transition: 0.382s ease;
        &:hover {
          transform: scale(1.1);
        }
      }
    }
  }
}
</style>


相关文章
|
18天前
|
前端开发
js-基础轮播图制作
js-基础轮播图制作
19 7
|
18天前
|
JavaScript
JS中的splice的三种用法(删除,替换,插入)
JS中的splice的三种用法(删除,替换,插入)
87 4
|
2月前
|
JavaScript 前端开发
js轮播图练习
文章介绍了如何使用HTML、CSS和JavaScript创建一个简单的轮播图效果。通过`img`标签展示图片,并通过点击下方的点(`span`标签)切换图片。文章提供了完整的HTML结构、CSS样式和JavaScript代码,以及图片的展示和轮播图的效果图。
js轮播图练习
|
24天前
|
JavaScript 前端开发
js轮播图有左右箭头和小点
js轮播图有左右箭头和小点
30 1
|
14天前
|
存储 JavaScript 前端开发
Vue.js项目中全面解析定义全局变量的常用方法与技巧
Vue.js项目中全面解析定义全局变量的常用方法与技巧
24 0
|
2月前
|
JavaScript 前端开发
js函数调用与定义
js函数调用与定义
|
2月前
|
存储 JavaScript 前端开发
JavaScript 函数定义
JavaScript 函数定义
23 3
|
2月前
|
JavaScript 前端开发
JavaScript基础知识-数组的定义方式
本文介绍了JavaScript中数组的多种定义方式。
19 1
JavaScript基础知识-数组的定义方式
|
2月前
|
JavaScript 前端开发
JavaScript基础知识-构造函数(也称为"类")定义
本文介绍了JavaScript中构造函数(也称为“类”)的定义和使用方法。
33 1
JavaScript基础知识-构造函数(也称为"类")定义
|
20天前
|
前端开发 JavaScript 索引
JavaScript 数组常用高阶函数总结,包括插入,删除,更新,反转,排序等,如map、splice等
JavaScript数组的常用高阶函数,包括遍历、插入、删除、更新、反转和排序等操作,如map、splice、push、pop、reverse等。
16 0