首页banner动画实现
京东新闻上下动画实现
想着模仿京东首页呢,结果也没赶得及写完,轮播图让我搞了好长时间。也好,那就国庆8天好好的写一下,这里写了一半,先放着。先介绍一下这一半的内容。
还是老规矩,先放个图吧,虽然才一点点了
上线的banner大图和京东头条都是可以滚动的,抄写微信小程序社区官方qq群:390289365里 Nigel''写的。
下面说一下项目
这次我把项目的资源文件全部放到resources文件夹里了,图片放到images里,这样后期可能有视频、语音文件,都可以放在resources文件下对应的文件目录下面。
先说banner大图,这里是一个轮播,采用的是swiper组件实现,
1 2 3 4 5 6 7 8 9 10 11 12 13 < swiper style="height:180px" indicator-dots="{{indicatorDots}}" autoplay="{{autoplay}}" interval="{{interval}}" duration="{{duration}}"> < block wx:for="{{swiperData}}"> < swiper-item class="swiper-item"> < navigator url="{{item.url}}"> < image src="{{item.img}}"/> < text >{{item.text}}</ text > </ navigator > </ swiper-item > </ block > </ swiper >
后台数据从数据绑定,这完全基本是从Nigel‘’大神那里粘贴的,哈哈。惭愧,共享下,大神的github源码:https://github.com/xuyiazl/wx-demo地址
大家可以看到,可以设置动画的轮播间隔时间:interval,duration ,播放类型autoplay等。
要播放的数据从后台绑定,前台视图渲染,用的还是我们上篇提到的wx-for。将数据循环展示出来。
后台数据的格式见如下:
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 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 data: { swiperData: [{ img: '/resources/images/b1.jpg' , text: '小家电国庆风暴' , url: '/pages/layout/result?title=navigate1' },{ img: '/resources/images/b2.jpg' , text: '360路由器,1000半价' , url: '/pages/layout/result?title=navigate2' },{ img: '/resources/images/b3.jpg' , text: '跨店四减一' , url: '/pages/layout/result?title=navigate3' }], indicatorDots: false , autoplay: true , interval: 3000, duration: 1000, list1: [], list2:[], navlist:[{ url: 'result?title=导航2' , icon: '/resources/images/n1.png' , text: '京东生鲜' },{ url: 'result?title=导航2' , icon: '/resources/images/n2.png' , text: '全球购' },{ url: 'result?title=导航3' , icon: '/resources/images/n3.png' , text: '领券' },{ url: 'result?title=导航4' , icon: '/resources/images/n4.png' , text: '全球购' }], headlines: [ { text: '有几个亿的项目你要不要考虑下' , url: '/pages/layout/result?title=navigate1' }, { text: '我在给你说采蘑菇的事情' , url: '/pages/layout/result?title=navigate2' }, { text: '每个女生都需要一条美丽的裙子' , url: '/pages/layout/result?title=navigate3' }, { text: '吃旺旺雪饼运气变旺' , url: '/pages/layout/result?title=navigate1' , }, { text: '京东电器低价来袭' , url: '/pages/layout/result?title=navigate2' , }, { text: '三只松鼠,让零食嗨起来' , url: '/pages/layout/result?title=navigate3' , }] },
接下来的三个导航图标就不介绍了,直接拉个代码吧,没什么介绍的。
然后就是京东头条了,这个也是动态展示的,这里采用的动画展示
绑定view的animation,后台js程序实例化animation方法,这还是Nigel‘’的,后台代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 headlineAnimation: function ( timeout ) { //京东头条的滚动 var that = this ; var current = 0; var line = 2; //每次翻滚的行 var height = 24 * line; //设置每次翻滚的高度,无法获取适配的高度,得固定 setInterval( function () { that.animation.translate( 0, -current * height ).step() that.setData( { animation: that.animation. export () }) current++; if ( current * height >= ( ( that.data.headlines.length / line ) ) * height ) current = 0; }, timeout ); }
其他的没什么说的了,国庆回去尽量好好把页面写全。
上面的源码呢,也先放上来:http://www.cwechat.org/thread-29-1-1.html节后尽量吧最新的也放上来。