首页 > 其他分享 >vue2+swiper 纵向弧形滚动效果

vue2+swiper 纵向弧形滚动效果

时间:2024-09-11 16:03:42浏览次数:1  
标签:纵向 slides slide Math vue2 progress true swiper

很垃圾的弧形轮播效果,其实不算弧形,只是一个爬坡效果,最终否了

但保留一下配置项的代码。。

方案1:

swiperOptions: {
        direction: "vertical",
        spaceBetween: -80,
        slidesPerView: 5,
        loop: true,
        centeredSlides: true, //当前的active slide是否居中
        watchSlidesProgress: true, //计算每个slide的progress
        grabCursor: true,
        pagination: false,
        navigation: {
          nextEl: ".swiper-button-next",
          prevEl: ".swiper-button-prev",
        },
        autoplay: false,
        on: {
          setTranslate: function () {
            let slides = this.slides;
            for (var i = 0; i < slides.length; i++) {
              const slide = document.querySelectorAll(".hero_swiper_side")[i];
              const progress = slides[i].progress;
              slide.style.opacity = "";
              slide.style.background = "";
              slide.style.transform = ""; //清除样式
              slide.style.opacity = 1 - Math.abs(progress) / 5;
              slide.style.transform =
                "translate3d(-" + (Math.abs(progress) * 80) / 100 + "rem,0, 0)";
            }
          },
          setTransition: function (transition) {
            for (var i = 0; i < this.slides.length; i++) {
              const slide = document.querySelectorAll(".swiper-slide")[i];
              if (slide[0]) slide.transition(transition);
            }
          },
        },
      },

  

方案2:

swiperOptions: {
        direction: "vertical",
        spaceBetween: 20,
        slidesPerView: 5,
        centeredSlides: true, //当前的active slide是否居中
        watchSlidesProgress: true, //计算每个slide的progress
        observer: true, //修改swiper自己或子元素时,自动初始化swiper
        observeParents: true, //修改swiper的父元素时,自动初始化swiper
        loop: true,
        grabCursor: true,
        pagination: false,
        navigation: false,
        autoplay: false,
        on: {
          setTranslate: function () {
            let slides = this.slides;
            for (let i = 0; i < slides.length; i++) {
              let slide = slides[i];
              let progress = slides[i].progress;
              //140是盒子高度,12是一圈大概多少个
              let scaleY =
                Math.cos(
                  (Math.PI / 180) * Math.round(360 / 12) * Math.abs(progress)
                ) * 220;
              slide.style.transform = "translate3d(" + scaleY + "px, 0, 0)"; //偏移
            }
          },
          setTransition: function (swiper, transition) {
            for (var i = 0; i < this.slides.length; i++) {
              const slide = document.querySelectorAll(".swiper-slide")[i];
              if (slide[0]) slide.transition(transition);
            }
          },
        },
      },

  

标签:纵向,slides,slide,Math,vue2,progress,true,swiper
From: https://www.cnblogs.com/nangras/p/18408380

相关文章

  • 利用vue2+element ui做一个购物车的复选框多选
    @TOC......
  • 前端登录注册页面springboot+vue2全开发!
    需求目标:有“登录界面”和“注册界面”以及“功能操作界面”:我们打开程序会自动进入“登录界面”,如果密码输入正确则直接进入“功能操作界面”,在“登录界面”我们可以点击注册进入“注册页面”,注册好了可以再跳回到“登录界面”进行登录。代码实现:(1)登录操作后端开发见我博......
  • Swiper轮播图框架【前端 24】
    Swiper轮播图框架在如今的网页设计中,轮播图已成为一种不可或缺的元素,它能够以动态的方式展示图片、视频或文本信息,有效吸引用户的注意力并提升页面的互动性。在众多轮播图实现框架中,Swiper以其高度的可定制性、流畅的滑动效果以及丰富的API接口脱颖而出,成为前端开发者的首......
  • Vue2 和 Vue3 的区别(设计理念、性能提升、编码方式以及特性)
    Vue2和Vue3是Vue.js框架的两个主要版本,虽然它们具有许多相似之处,但也有一些重要的区别。下面是Vue2和Vue3之间的一些区别:设计理念:Vue2采用的是基于对象的设计理念,通过使用OptionsAPI来组织组件的相关选项(data、methods、computed、watch等)。Vue3采用的是基于函数的设计理念......
  • Vue3、Vue2、js通用下载不同文件的几种方式
    示例在Vue中需要实现文件下载功能时,我们可以有多种方式来完成。下面将介绍五种常用的方法。1.使用window.open方法下载文件<template><div><button@click="downloadFile('file1.pdf')">下载文件1</button><button@click="downloadFile('file2.jpg'......
  • 组态软件之万维组态介绍(web组态、html组态、vue2/vue3组态、组态软件、组态编辑器)
     一、什么是组态软件组态软件是一种用于创建、配置和管理监控和控制系统的软件工具。组态是指不需要编写计算机程序、通过配置的方式完成工业应用开发的系统。它们通常用于工业自动化领域,用于实时监视和控制工业过程。组态软件提供了丰富的功能和工具,使用户能够创建用户界......
  • vue2+elementUI+Django实现登录注册功能
     前端代码<template><el-rowtype="flex"justify="center"style="height:100vh;"><el-col:xs="24":sm="12":md="8":lg="6"><el-cardclass="login-card......
  • Swiper
    Swiper文章目录Swiper一.什么是Swiper?二.Swiper下载?三.使用步骤?1.解压2.引入相应项目3.引入文件4.复制代码四.HTML部分五.JS部分六.完整代码块一.什么是Swiper?Swiper是一款流行的、专为移动设备优化的滑动触摸插件,它使用JavaScript编写,旨在为网站和应用提供流畅......
  • Vue2 - 详细实现聊天室IM即时通讯及聊天界面,支持发送图片视频、消息已读未读等,集成mqt
    前言如果您需要Vue3版本,请访问在vue2|nuxt2项目开发中,详解手机移动端H5网页在线1v1聊天功能(仿腾讯云IM功能),技术栈为MQTT通讯协议+后端Node服务端+数据库设计+vue前端聊天界面,超详细前后端完整流程及示例源代码,vue2聊天即时通讯IM实时接收和发送消息,可发送文字、图......
  • vue2项目中使用three.js开发三维IT机房
    三维IT机房可以将机房数据可视化,让企业更好的监控和管理IT机柜在前端页面对IT机房进行三维展示当鼠标划入IT机柜的时候,提示当前机柜的详细信息一键显示机房中过热的机柜1.准备一份IT机房模型1-1-建模思路简化模型,能用贴图表现的细节,就用贴图。这样可提高渲染......