微信小程序实战之轮播图(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 相关文章推荐
js实现在页面上弹出蒙板技巧简单实用
Apr 16 Javascript
jQuery点击自身以外地方关闭弹出层的简单实例
Dec 24 Javascript
js使用eval解析json(js中使用json)
Jan 17 Javascript
JavaScript创建对象_动力节点Java学院整理
Jun 27 Javascript
React中使用collections时key的重要性详解
Aug 07 Javascript
koa源码中promise的解读
Nov 13 Javascript
在 Angular-cli 中使用 simple-mock 实现前端开发 API Mock 接口数据模拟功能的方法
Nov 28 Javascript
vue favicon设置以及动态修改favicon的方法
Dec 21 Javascript
js使用文件流下载csv文件的实现方法
Jul 15 Javascript
Electron 调用命令行(cmd)
Sep 23 Javascript
vue实现公告栏文字上下滚动效果的示例代码
Jun 16 Javascript
详解JS预解析原理
Jun 16 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魔术方法与魔术变量、内置方法与内置变量的深入分析
2013/06/03 PHP
最常用的8款PHP调试工具
2014/07/06 PHP
jquery CSS选择器笔记
2010/03/29 Javascript
JQuery浮动DIV提示信息并自动隐藏的代码
2010/08/29 Javascript
jQuery cdn使用介绍
2013/05/08 Javascript
jquery.cookie用法详细解析
2013/12/18 Javascript
jquery实现效果比较好的table选中行颜色
2014/03/25 Javascript
jquery实现标签上移、下移、置顶
2015/04/26 Javascript
jquery 中toggle的2种用法详解(推荐)
2016/09/02 Javascript
使用vue.js写一个tab选项卡效果
2017/03/25 Javascript
Vue表单验证插件的制作过程
2017/04/01 Javascript
Vue自定义指令详解
2017/07/28 Javascript
关于vue.extend和vue.component的区别浅析
2017/08/16 Javascript
使用jquery+iframe做一个ajax上传效果(实例)
2017/08/24 jQuery
微信jssdk逻辑在vue中的运用详解
2018/11/14 Javascript
vue拖拽组件 vuedraggable API options实现盒子之间相互拖拽排序
2019/07/08 Javascript
移动端吸顶fixbar的解决方案详解
2019/07/17 Javascript
JS实现吸顶特效
2020/01/08 Javascript
python使用multiprocessing模块实现带回调函数的异步调用方法
2015/04/18 Python
自动化Nginx服务器的反向代理的配置方法
2015/06/28 Python
python使用xlrd和xlwt读写Excel文件的实例代码
2018/09/05 Python
对python pandas读取剪贴板内容的方法详解
2019/01/24 Python
给我一面国旗 python帮你实现
2019/09/30 Python
Python实现Canny及Hough算法代码实例解析
2020/08/06 Python
基于HTML5+Webkit实现树叶飘落动画
2017/12/28 HTML / CSS
戴尔英国官网:Dell英国
2017/05/27 全球购物
美国传奇滑手Paul Rodriguez创办的街头滑板品牌:Primitive Skateboarding
2019/10/29 全球购物
澳大利亚领先的女性运动服品牌:Lorna Jane
2020/06/19 全球购物
关于廉洁的广播稿
2014/01/30 职场文书
《莫高窟》教学反思
2014/02/25 职场文书
植树节口号
2014/06/21 职场文书
公务员上班玩游戏检讨书
2014/09/17 职场文书
2015年元宵节活动总结
2015/02/06 职场文书
清洁工工作总结
2015/08/11 职场文书
php去除数组中为0的元素的实例分析
2021/11/17 PHP
关于JavaScript 中 if包含逗号表达式
2021/11/27 Javascript