首页 > 学院 > 开发设计 > 正文

微信小程序之轮播图实例 —— 微信小程序实战系列(3)

2019-11-06 09:40:44
字体:
来源:转载
供稿:网友

轮播图是大部分应用的一个常用的功能,常用于广告投放、产品展示、活动展示等等。

漂亮的轮播图效果可以吸引用户的点击,达到推广产品的作用。

废话少说,下面开始动手。

 

业务需求:

5个图片轮番播放,可以左右滑动,点击指示点可以切换图片

 

重点说明:

由于微信小程序,整个项目编译后的大小不能超过1M

查看做轮播图功能的一张图片大小都已经有100+k了

那么我们可以把图片放在服务器上,发送请求来获取。

index.wxml

这里使用小程序提供的<swiper>组件

autoplay:自动播放

interval:自动切换时间

duration:滑动动画的时长

current:当前所在的页面

bindchange:current 改变时会触发 change 事件

由于<swiper>组件提供的指示点样式比较单一,另外再自定义指示点的样式

<view class="recommend" >  <view class="swiper-container">    <swiper autoplay="auto" interval="5000" duration="500" current="{{swiperCurrent}}" bindchange="swiperChange" class="swiper">      <block wx:for="{{slider}}" wx:key="unique">        <swiper-item data-id="{{item.id}}" data-url="{{item.linkUrl}}">          <image src="{{item.picUrl}}" class="img"></image>        </swiper-item>      </block>    </swiper>    <view class="dots">      <block wx:for="{{slider}}" wx:key="unique">        <view class="dot{{index == swiperCurrent ? ' active' : ''}}" bindtap="chuangEvent" id="{{index}}">{{index+1}}</view>      </block>    </view>  </view></view>

index.wxss:

.swiper-container{  position: relative;}.swiper-container .swiper{  height: 300rpx;}.swiper-container .swiper .img{  width: 100%;  height: 100%;}.swiper-container .dots{  position: absolute;  right: 40rpx;  bottom: 20rpx;  display: flex;  justify-content: center;}.swiper-container .dots .dot{  margin: 0 10rpx;  width: 28rpx;  height: 28rpx;  background: #fff;  border-radius: 50%;  transition: all .6s;  font: 300 18rpx/28rpx "microsoft yahei";  text-align: center;}.swiper-container .dots .dot.active{  background: #f80;  color:#fff;}

index.js:

//导入jsvar util = require('../../utils/util.js')Page({  data: {    slider: [],    swiperCurrent: 0  },  onLoad: function () {    var that = this;//网络访问,获取轮播图的图片    util.getRecommend(function(data){      that.setData({        slider: data.data.slider      })    });   },  //轮播图的切换事件  swiperChange: function(e){//只要把切换后当前的index传给<swiper>组件的current属性即可    this.setData({      swiperCurrent: e.detail.current    })  },  //点击指示点切换  chuangEvent: function(e){    this.setData({      swiperCurrent: e.currentTarget.id    })  }})

utils.js:

//网络访问function getRecommend(callback) {  wx.request({    url: 'https://c.y.QQ.com/musichall/fcgi-bin/fcg_yqqhomepagerecommend.fcg',    data: {      g_tk: 5381,      uin: 0,      format: 'json',      inCharset: 'utf-8',      outCharset: 'utf-8',      notice: 0,      platform: 'h5',      needNewCode: 1,      _: Date.now()    },    method: 'GET',    header: {'content-Type': 'application/json'},    success: function(res){      if(res.statusCode == 200){        callback(res.data);      }    }  })}module.exports = {  getRecommend: getRecommend}

运行:

更多小程序的教程请查看:http://blog.csdn.net/michael_ouyang/article/details/54700871

谢谢观看,不足之处,敬请指导


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表