微信小程序实战之轮播图(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实现滚动到页面底端时自动加载更多信息
Jan 31 Javascript
js 金额格式化来回转换示例
Feb 23 Javascript
javascript将相对路径转绝对路径示例
Mar 14 Javascript
JavaScript中使用ActiveXObject操作本地文件夹的方法
Mar 28 Javascript
当某个文本框成为焦点时即清除文本框内容
Apr 28 Javascript
简介JavaScript中的italics()方法的使用
Jun 08 Javascript
简述jQuery ajax的执行顺序
Jan 05 Javascript
JS表单验证的代码(常用)
Apr 08 Javascript
javascript实现简单的on事件绑定
Aug 23 Javascript
原生JS中slice()方法和splice()区别
Mar 06 Javascript
Vue组件之极简的地址选择器的实现
May 31 Javascript
JavaScript组合模式---引入案例分析
May 23 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/09/29 PHP
PHP记录页面停留时间的方法
2016/03/30 PHP
JavaScript DOM 添加事件
2009/02/14 Javascript
JS中Iframe之间传值的方法
2013/03/11 Javascript
js replace 与replaceall实例用法详解
2013/08/03 Javascript
利用js判断浏览器类型(是否为IE,Firefox,Opera浏览器)
2013/11/22 Javascript
在jquery中combobox多选的不兼容问题总结
2013/12/24 Javascript
更快的异步执行(setTimeout多浏览器)
2014/08/12 Javascript
JS实现可自定义大小,可双击关闭的弹出层效果
2015/10/16 Javascript
jQuery手动点击实现图片轮播特效
2020/04/20 Javascript
全面理解JavaScript中的继承(必看)
2016/06/16 Javascript
JavaScript模仿Pinterest实现图片预加载功能
2016/10/25 Javascript
HTML5+jQuery实现搜索智能匹配功能
2017/03/24 jQuery
vue实现app页面切换动画效果实例
2017/05/23 Javascript
js+html5实现手机九宫格密码解锁功能
2018/07/30 Javascript
react-router 路由切换动画的实现示例
2018/12/03 Javascript
js变量声明var使用与不使用的区别详解
2019/01/21 Javascript
Python中条件选择和循环语句使用方法介绍
2013/03/13 Python
python在windows下实现备份程序实例
2014/07/04 Python
python实现登陆知乎获得个人收藏并保存为word文件
2015/03/16 Python
python单例模式实例分析
2015/04/08 Python
django加载本地html的方法
2018/05/27 Python
Django数据库连接丢失问题的解决方法
2018/12/29 Python
对Python w和w+权限的区别详解
2019/01/23 Python
Python配置虚拟环境图文步骤
2019/05/20 Python
Python中字符串List按照长度排序
2019/07/01 Python
python实现批处理文件
2020/07/28 Python
详解python tkinter包获取本地绝对路径(以获取图片并展示)
2020/09/04 Python
Python析构函数__del__定义原理解析
2020/11/20 Python
Django celery异步任务实现代码示例
2020/11/26 Python
Sofft鞋官网:世界知名鞋类品牌
2017/03/28 全球购物
大学生毕业自我鉴定范文
2013/11/03 职场文书
工程项目经理岗位职责
2013/12/15 职场文书
设计师求职信模板
2014/05/06 职场文书
介绍信格式样本
2015/05/05 职场文书
20180830晚上第一届KSL半决赛 雨神vs解冻(二龙 三炮解说)
2022/04/01 星际争霸