微信小程序实战之轮播图(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 相关文章推荐
jquery 学习之二 属性(类)
Nov 25 Javascript
解决css和js的{}与smarty定界符冲突问题的两种方法
Sep 10 Javascript
ie与ff下的event事件使用介绍
Nov 25 Javascript
JavaScript获取css行间样式,内连样式和外链样式的简单方法
Jul 18 Javascript
AngularJS深入探讨scope,继承结构,事件系统和生命周期
Nov 02 Javascript
JS实现拖拽的方法分析
Dec 20 Javascript
jQuery+ajax的资源回收处理机制分析
Jan 07 Javascript
详解能在多种前端框架下使用的表格控件
Jan 11 Javascript
react-router4 嵌套路由的使用方法
Jul 24 Javascript
JS使用正则表达式判断输入框失去焦点事件
Oct 16 Javascript
Vue使用vue-draggable 插件在不同列表之间拖拽功能
Mar 12 Javascript
Bootstrap table 服务器端分页功能实现方法示例
Jun 01 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/04/24 PHP
2个自定义的PHP in_array 函数,解决大量数据判断in_array的效率问题
2014/04/08 PHP
JavaScript Archive Network 集合
2007/05/12 Javascript
用jQuery模拟页面加载进度条的实现代码
2011/12/19 Javascript
IE、FF、Chrome浏览器中的JS差异介绍
2013/08/13 Javascript
js下拉菜单语言选项简单实现
2013/09/23 Javascript
JS+JSP checkBox 全选具体实现
2014/01/02 Javascript
jQuery中removeProp()方法用法实例
2015/01/05 Javascript
使用jQuery给input标签设置默认值
2016/06/20 Javascript
jQuery表单事件实例代码分享
2016/08/18 Javascript
setTimeout函数的神奇使用
2017/02/26 Javascript
angular.JS实现网页禁用调试、复制和剪切
2017/03/31 Javascript
Angular2中select用法之设置默认值与事件详解
2017/05/07 Javascript
Iscrool下拉刷新功能实现方法(推荐)
2017/06/26 Javascript
微信小程序 MinUI组件库系列之badge徽章组件示例
2018/08/20 Javascript
一次Webpack配置文件的分离实战记录
2018/11/30 Javascript
JavaScript从原型到原型链深入理解
2019/06/03 Javascript
在Express中提供静态文件的实现方法
2019/10/17 Javascript
5分钟快速看懂ES6中的反射与代理
2019/12/19 Javascript
[03:42]2014DOTA2西雅图国际邀请赛 Navi战队巡礼
2014/07/07 DOTA
[38:40]2018DOTA2亚洲邀请赛 4.6淘汰赛 mineski vs LGD 第一场
2018/04/10 DOTA
Python的Django框架中设置日期和字段可选的方法
2015/07/17 Python
python采用django框架实现支付宝即时到帐接口
2016/05/17 Python
浅谈python for循环的巧妙运用(迭代、列表生成式)
2017/09/26 Python
Python入门之三角函数atan2()函数详解
2017/11/08 Python
win7+Python3.5下scrapy的安装方法
2018/07/31 Python
Python常见数据结构之栈与队列用法示例
2019/01/14 Python
Python基本语法之运算符功能与用法详解
2019/10/22 Python
python3+selenium获取页面加载的所有静态资源文件链接操作
2020/05/04 Python
Python如何读写字节数据
2020/08/05 Python
用python批量移动文件
2021/01/14 Python
什么是三层交换,说说和路由的区别在那里
2014/09/01 面试题
公务员综合考察材料
2014/02/01 职场文书
《小山羊和小灰兔》教学反思
2014/02/19 职场文书
2015年度学校卫生工作总结
2015/05/12 职场文书
理解深度学习之深度学习简介
2021/04/14 Python