vue2+swiper 纵向弧形滚动效果
很垃圾的弧形轮播效果,其实不算弧形,只是一个爬坡效果,最终否了
但保留一下配置项的代码。。
方案1:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | 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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | 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); } }, }, }, |
分类:
VUE从入门到放弃
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具