微信小程序实战之轮播图(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玩一玩WSH吧
Feb 23 Javascript
用showModalDialog弹出页面后,提交表单总是弹出一个新窗口
Jul 18 Javascript
Prototype 工具函数 学习
Jul 23 Javascript
用js做一个小游戏平台 (一)
Dec 29 Javascript
js继承call()和apply()方法总结
Dec 08 Javascript
浅析angularJS中的ui-router和ng-grid模块
May 20 Javascript
Bootstrap的modal拖动效果
Dec 25 Javascript
javascript闭包功能与用法实例分析
Apr 06 Javascript
jQuery实现按比例缩放图片的方法
Apr 29 jQuery
JavaScript设置名字输入不合法的实现方法
May 23 Javascript
vue项目初始化到登录login页面的示例
Oct 31 Javascript
微信小程序事件流原理解析
Nov 27 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
星际争霸, 教主第一视角, ZvT经典龙蛇演义
2020/03/02 星际争霸
PHP闭包函数详解
2016/02/13 PHP
PHP实现的简单排列组合算法应用示例
2017/06/20 PHP
PHP基于堆栈实现的高级计算器功能示例
2017/09/15 PHP
Laravel如何使用数据库事务及捕获事务失败后的异常详解
2017/10/23 PHP
laravel 解决路由除了根目录其他都404的问题
2019/10/18 PHP
Jquery实现的一种常用高亮效果示例代码
2014/01/28 Javascript
JavaScript监听和禁用浏览器回车事件实例
2015/01/31 Javascript
jQuery表单验证功能实例
2015/08/28 Javascript
微信小程序map组件结合高德地图API实现wx.chooseLocation功能示例
2019/01/23 Javascript
vue-cli脚手架打包静态资源请求出错的原因与解决
2019/06/06 Javascript
bootstrap datepicker的基本使用教程
2019/07/09 Javascript
vue如何在用户要关闭当前网页时弹出提示的实现
2020/05/31 Javascript
Python提示[Errno 32]Broken pipe导致线程crash错误解决方法
2014/11/19 Python
使用Python编写Linux系统守护进程实例
2015/02/03 Python
Python错误: SyntaxError: Non-ASCII character解决办法
2017/06/08 Python
python+POP3实现批量下载邮件附件
2018/06/19 Python
python set内置函数的具体使用
2019/07/02 Python
Python+selenium点击网页上指定坐标的实例
2019/07/05 Python
python如何实现不可变字典inmutabledict
2020/01/08 Python
在PyTorch中使用标签平滑正则化的问题
2020/04/03 Python
Python内置函数property()如何使用
2020/09/01 Python
Python3中对json格式数据的分析处理
2021/01/28 Python
网络宣传方案
2014/03/15 职场文书
保护环境建议书300字
2014/05/13 职场文书
小学班主任培训方案
2014/06/04 职场文书
体育教师求职信
2014/06/30 职场文书
中学教师师德师风演讲稿
2014/08/22 职场文书
2016年春节问候语
2015/11/11 职场文书
高中物理教学反思
2016/02/19 职场文书
2016优秀大学生个人事迹材料范文
2016/03/01 职场文书
微信小程序和php的登录实现
2021/04/01 PHP
sql查询结果列拼接成逗号分隔的字符串方法
2021/05/25 SQL Server
解决persistence.xml配置文件修改存放路径的问题
2022/02/24 Java/Android
PyTorch中的torch.cat简单介绍
2022/03/17 Python
MySQL数据库事务的四大特性
2022/04/20 MySQL