微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

微信小程序--旋转木马/缩放轮播图效果

话不多说先上图.gif

文章涉及技术点

微信小程序原生Swiper控件
Wxss Transform、Transition
轮播条滚动回调控制
微信小程序条件渲染、列表渲染

全部实现代码加起来也就三四十行,大部分还用来写wxml UI代码,所以功能实现起来非常简单。 
首先将问题简单化,能用原生组件实现出我们想要的效果,绝不自己开发Component。原因:我懒+我自己写的也不敢说性能堪比原生组件

先来分析一波gif中我们需要实现效果和哪些效果可以直接修改原生Swiper的属性就能实现的

我们需要自己实现的功能

自动滚动+手动拖拽 (原生组件帮我们完成 Property:autoplay) 
面板指示点 (原生组件帮我们完成 Property:indicator-dots) 
左右可以露出非Active状态图的边缘(即Quiet状态, 后文class会以这两个名字定义) (原生组件帮我们完成 Property:prevIoUs-margin、next-margin) 
图片滚动到中心位置放大,滚动出去缩小 (我们手写实现,利用技术点中提到的滚动回调+条件渲染。其中滚动回调用 Property:bindchange) 
这样看下来就很清晰了,需要我们实现的只有一个动画放大缩小。再进一步

就能分成两种实现方式:

wxss实现 
js实现

很显然wxss实现代码很少也能达到同样的效果,so~

  1. //.wxml
  2. <swiper class='swiperClass' autoplay indicator-color"#a39f99" indicatoractive"#f49641"dots interval"2000" duration"1000" prevIoUsmargin"30px" next circular bindchange"bindchange" style'height: {{swiperHeight}}px'>
  3. swiperitem>
  4. mode'aspectFill'>
  5. >
  6. >
.swiperClass {
  • top10px;
  • width100%;
  • borderradius;
  • }
  • transform none;
  • }
  • scale(0.8333333);
  • data     imgurls[
    
  • ,
  • swiperIndex0 //这里不写第一次启动展示的时候会有问题
  • swiperIndex edetailcurrent
  • 上面Swiper控件里面还有设置宽高的属性就随便填几个数测试就好了,不影响主要功能

    注意身体,小心秃顶

    版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。