微信小程序实战之轮播图(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 each函数的链式调用
Jul 22 Javascript
asp.net下使用jquery 的ajax+WebService+json 实现无刷新取后台值的实现代码
Sep 19 Javascript
设置jsf的选择框h:selectOneMenu为不可编辑状态的方法
Jan 07 Javascript
Bootstrap中glyphicons-halflings-regular.woff字体报404错notfound的解决方法
Jan 19 Javascript
浅谈关于angularJs中使用$.ajax的注意点
Aug 12 Javascript
Angular中的$watch方法详解
Sep 18 Javascript
vue.js前后端数据交互之提交数据操作详解
Apr 24 Javascript
JS实现的input选择图片本地预览功能示例
Aug 29 Javascript
Vue 无限滚动加载指令实现方法
May 28 Javascript
javascript实现导航栏分页效果
Jun 27 Javascript
Webpack中loader打包各种文件的方法实例
Sep 03 Javascript
Vue 实现监听窗口关闭事件,并在窗口关闭前发送请求
Sep 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桌面中心(二) 数据库写入
2007/03/11 PHP
php数组索引与键值操作技巧实例分析
2015/06/24 PHP
PHP mongodb操作类定义与用法示例【适合mongodb2.x和mongodb3.x】
2018/06/16 PHP
Jquery实现搜索框提示功能示例代码
2013/08/13 Javascript
js判断浏览器是否支持html5
2014/08/17 Javascript
Jquery解析Json格式数据过程代码
2014/10/17 Javascript
JavaScript中的Web worker多线程API研究
2014/12/06 Javascript
javascript删除元素节点removeChild()用法实例
2015/05/26 Javascript
jquery编写Tab选项卡滚动导航切换特效
2020/07/17 Javascript
浅谈JavaScript中的分支结构
2016/07/01 Javascript
简单实现js浮动框
2016/12/13 Javascript
jQuery实现移动端Tab选项卡效果
2017/03/15 Javascript
jQuery DOM节点的遍历方法小结
2017/08/15 jQuery
Node.js创建Web、TCP服务器
2017/12/05 Javascript
VSCode搭建React Native环境
2020/05/07 Javascript
python获取外网ip地址的方法总结
2015/07/02 Python
Python字典及字典基本操作方法详解
2018/01/30 Python
python 自定义异常和异常捕捉的方法
2018/10/18 Python
Python GUI库PyQt5样式QSS子控件介绍
2020/02/25 Python
Django 解决由save方法引发的错误
2020/05/21 Python
python链表类中获取元素实例方法
2021/02/23 Python
结合CSS3的新特性来总结垂直居中的实现方法
2016/05/30 HTML / CSS
Desigual美国官方网站:西班牙服装品牌
2019/03/29 全球购物
如何编写优秀的食品项目创业计划书
2014/01/23 职场文书
银行求职信
2014/05/31 职场文书
英语课外活动总结
2014/08/27 职场文书
接收函格式
2015/01/30 职场文书
2015年八一建军节慰问信
2015/03/23 职场文书
小兵张嘎观后感
2015/06/03 职场文书
2015年机关作风和效能建设工作总结
2015/07/23 职场文书
2016教师学习党章心得体会
2016/01/15 职场文书
2016年119消防宣传日活动总结
2016/04/05 职场文书
世界上超棒的8种逻辑思维
2019/08/06 职场文书
使用HTML+Css+transform实现3D导航栏的示例代码
2021/03/31 HTML / CSS
前端JavaScript大管家 package.json
2021/11/02 Javascript
mysql拆分字符串作为查询条件的示例代码
2022/07/07 MySQL