【升级玩法】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>


相关文章
|
12天前
|
JavaScript
时尚简洁的js轮播图特效插件
这是一款时尚简洁的js轮播图特效插件。该轮播图采用es6语法制作,底部带缩略图和描述信息。图片和描述信息在切换时同步滑动。
|
2月前
|
JavaScript 测试技术 API
跟随通义灵码一步步升级vue2(js)项目到vue3版本
Vue 3 相较于 Vue 2 在性能、特性和开发体验上都有显著提升。本文介绍了如何利用通义灵码逐步将 Vue 2 项目升级到 Vue 3,包括备份项目、了解新特性、选择升级方式、升级依赖、迁移组件和全局 API、调整测试代码等步骤,并提供了注意事项和常见问题的解决方案。
|
2月前
|
前端开发
js-基础轮播图制作
js-基础轮播图制作
34 7
|
3月前
|
JavaScript 前端开发
js轮播图练习
文章介绍了如何使用HTML、CSS和JavaScript创建一个简单的轮播图效果。通过`img`标签展示图片,并通过点击下方的点(`span`标签)切换图片。文章提供了完整的HTML结构、CSS样式和JavaScript代码,以及图片的展示和轮播图的效果图。
js轮播图练习
|
2月前
|
JavaScript
JS中的splice的三种用法(删除,替换,插入)
JS中的splice的三种用法(删除,替换,插入)
281 4
|
3月前
|
移动开发 前端开发 JavaScript
JS配合canvas实现贪吃蛇小游戏_升级_丝滑版本_支持PC端和移动端
本文介绍了一个使用JavaScript和HTML5 Canvas API实现的贪吃蛇游戏的升级版本,该版本支持PC端和移动端,提供了丝滑的转向效果,并允许玩家通过键盘或触摸屏控制蛇的移动。代码中包含了详细的注释,解释了游戏逻辑、食物生成、得分机制以及如何响应不同的输入设备。
84 1
JS配合canvas实现贪吃蛇小游戏_升级_丝滑版本_支持PC端和移动端
|
2月前
|
JavaScript 前端开发
js轮播图有左右箭头和小点
js轮播图有左右箭头和小点
37 1
|
2月前
|
前端开发 JavaScript 索引
JavaScript 数组常用高阶函数总结,包括插入,删除,更新,反转,排序等,如map、splice等
JavaScript数组的常用高阶函数,包括遍历、插入、删除、更新、反转和排序等操作,如map、splice、push、pop、reverse等。
23 0
|
3月前
|
JavaScript 前端开发
JavaScript遍历数组用splice方法删除元素,这样写可能有遗漏,你遇到过吗?
JavaScript遍历数组用splice方法删除元素,这样写可能有遗漏,你遇到过吗?
|
3月前
|
JavaScript 前端开发 索引
JavaScript 数组中splice()的用法
本文介绍了JavaScript数组方法splice()的三种用法:删除元素、插入元素和替换元素,通过具体代码示例展示了如何使用splice()方法进行数组的修改操作。