微信小程序实战之轮播图(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 相关文章推荐
网页里控制图片大小的相关代码
Jun 25 Javascript
JS分割字符串并放入数组的函数
Jul 04 Javascript
基于jquery实现的省市区级联无ajax
Sep 24 Javascript
[将免费进行到底]在Amazon的一年免费服务器上安装Node.JS, NPM和OurJS博客
Aug 18 Javascript
javascript正则表达式参数/g与/i及/gi的使用指南
Aug 27 Javascript
javascript实现实时输出当前的时间
Apr 27 Javascript
基于JavaScript如何制作遮罩层对话框
Jan 26 Javascript
JavaScript学习笔记之数组求和方法
Mar 23 Javascript
深入解析桶排序算法及Node.js上JavaScript的代码实现
Jul 06 Javascript
使用vue.js2.0 + ElementUI开发后台管理系统详细教程(二)
Jan 21 Javascript
Vue2.0用户权限控制解决方案
Nov 29 Javascript
JS数组方法join()用法实例分析
Jan 18 Javascript
微信小程序实战之顶部导航栏(选项卡)(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页面缓存方法小结
2015/01/10 PHP
详解Laravel视图间共享数据与视图Composer
2016/08/04 PHP
浅谈PHP的反射API
2017/02/26 PHP
PHP实现的堆排序算法详解
2017/08/17 PHP
laravel-admin select框默认选中的方法
2019/10/03 PHP
php把文件设置为插件的技巧方法
2020/02/03 PHP
jquery控制左右箭头滚动图片列表的实例
2013/05/20 Javascript
JavaScript中数组slice和splice的对比小结
2016/09/22 Javascript
老生常谈JavaScript中的this关键字
2016/10/01 Javascript
利用jQuery来动态为属性添加或者删除属性的简单方法
2016/12/02 Javascript
js实现一键复制功能
2017/03/16 Javascript
Ionic + Angular.js实现图片轮播的方法示例
2017/05/21 Javascript
JS鼠标3次点击事件实现代码及扩展思路
2017/09/12 Javascript
原生JS实现自定义下拉单选选择框功能
2018/10/12 Javascript
微信小程序实现收货地址左滑删除
2020/11/18 Javascript
layui数据表格实现重载数据表格功能(搜索功能)
2019/07/27 Javascript
解决Vue在Tomcat8下部署页面不加载的问题
2019/11/12 Javascript
bootstrap实现嵌套模态框的实例代码
2020/01/10 Javascript
JS实现密码框效果
2020/09/10 Javascript
从源码角度来回答keep-alive组件的缓存原理
2021/01/18 Javascript
Python获取Linux系统下的本机IP地址代码分享
2014/11/07 Python
Python实用日期时间处理方法汇总
2015/05/09 Python
PyQt5利用QPainter绘制各种图形的实例
2017/10/19 Python
python抓取网页中链接的静态图片
2018/01/29 Python
Python函数的迭代器与生成器的示例代码
2020/06/18 Python
几款Python编译器比较与推荐(小结)
2020/10/15 Python
美体小铺瑞典官方网站:The Body Shop瑞典
2018/01/27 全球购物
eBay比利时购物网站:eBay.be
2019/08/09 全球购物
护理专业毕业生推荐信
2013/10/31 职场文书
品管员岗位职责
2013/11/10 职场文书
幼儿园毕业园长感言
2014/02/24 职场文书
年度考核自我鉴定
2014/03/19 职场文书
阅兵口号
2014/06/19 职场文书
师德师风自我评价范文
2014/09/11 职场文书
公司股东合作协议书
2014/09/14 职场文书
工伤劳动仲裁代理词
2015/05/25 职场文书