微信小程序实战之轮播图(3)


Posted in Javascript onApril 17, 2017

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

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

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

业务需求:

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:

//导入js 
var 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 
}

运行:

微信小程序实战之轮播图(3)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Safari5中alert的无限循环BUG
Apr 07 Javascript
JavaScript常见的五种数组去重的方式
Dec 15 Javascript
JS搜狐面试题分析
Dec 16 Javascript
JSON中key动态设置及JSON.parse和JSON.stringify()的区别
Dec 29 Javascript
利用n 升级工具升级Node.js版本及在mac环境下的坑
Feb 15 Javascript
Node.js安装配置图文教程
May 10 Javascript
js实现扫雷小程序的示例代码
Sep 27 Javascript
AngularJS实现表单验证功能详解
Oct 12 Javascript
微信小程序的注册页面包含倒计时验证码、获取用户信息
May 22 Javascript
JavaScript实现省市联动效果
Nov 22 Javascript
javascript使用canvas实现饼状图效果
Sep 08 Javascript
vue 实现图片懒加载功能
Dec 31 Vue.js
微信小程序实战之顶部导航栏(选项卡)(1)
Jun 19 #Javascript
微信小程序实战之上拉(分页加载)效果(2)
Apr 17 #Javascript
微信小程序教程系列之新建页面(4)
Apr 17 #Javascript
微信小程序商城项目之淘宝分类入口(2)
Apr 17 #Javascript
微信小程序商城项目之购物数量加减(3)
Apr 17 #Javascript
微信小程序商城项目之商品属性分类(4)
Apr 17 #Javascript
微信小程序商城项目之侧栏分类效果(1)
Apr 17 #Javascript
You might like
php 上传文件类型判断函数(避免上传漏洞 )
2010/06/08 PHP
php页面,mysql数据库转utf-8乱码,utf-8编码问题总结
2015/08/27 PHP
PHP记录和读取JSON格式日志文件
2016/07/07 PHP
PHP5.5基于mysqli连接MySQL数据库和读取数据操作实例详解
2019/02/16 PHP
PHP实现15位身份证号转18位的方法分析
2019/10/16 PHP
javascript数组去重3种方法的性能测试与比较
2013/03/26 Javascript
js操作label给label赋值及取label的值示例
2013/11/07 Javascript
基于JQuery实现的Select级联
2014/01/27 Javascript
100个不能错过的实用JS自定义函数
2014/03/05 Javascript
详解AngularJS中ng-src指令的使用
2016/09/07 Javascript
AngularJS实现与Java Web服务器交互操作示例【附demo源码下载】
2016/11/02 Javascript
JavaScript微信定位功能实现方法
2016/11/29 Javascript
实例详解JavaScript中setTimeout函数的执行顺序
2017/07/12 Javascript
详解Vue改变数组中对象的属性不重新渲染View的解决方案
2018/09/21 Javascript
layui lay-verify form表单自定义验证规则详解
2019/09/18 Javascript
vue框架制作购物车小球动画效果实例代码
2019/09/26 Javascript
vue 自定指令生成uuid滚动监听达到tab表格吸顶效果的代码
2020/09/16 Javascript
python开发之IDEL(Python GUI)的使用方法图文详解
2015/11/12 Python
python自动重试第三方包retrying模块的方法
2018/04/24 Python
PyQt5重写QComboBox的鼠标点击事件方法
2019/06/25 Python
搭建python django虚拟环境完整步骤详解
2019/07/08 Python
Django admin model 汉化显示文字的实现方法
2019/08/12 Python
使用Django搭建网站实现商品分页功能
2020/05/22 Python
Python astype(np.float)函数使用方法解析
2020/06/08 Python
python 用opencv实现霍夫线变换
2020/11/27 Python
Python实现简单猜数字游戏
2021/02/03 Python
介绍一下.net和Java的特点和区别
2012/09/26 面试题
若通过ObjectOutputStream向一个文件中多次以追加方式写入object,为什么用ObjectInputStream读取这些object时会产生StreamCorruptedException?
2016/10/17 面试题
公司董事长岗位职责
2014/06/08 职场文书
2014年党员个人工作总结
2014/12/02 职场文书
上课说话检讨书
2015/01/27 职场文书
员工保密协议范本,您一定得收藏!很有用!
2019/08/08 职场文书
python 如何用terminal输入参数
2021/05/25 Python
HTML中的表格元素介绍
2022/02/28 HTML / CSS
从零开始在Centos7上部署SpringBoot项目
2022/04/07 Servers
Smart 2 车辆代号 HC11 全新谍照曝光
2022/04/21 数码科技