微信小程序实战之轮播图(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 图片缩放(按比例)控制代码
May 27 Javascript
使用JavaScript 实现各种跨域的方法
May 08 Javascript
Node.js和PHP根据ip获取地理位置的方法
Mar 14 Javascript
javascript内置对象操作详解
Feb 04 Javascript
深入了解JavaScript中的Symbol的使用方法
Jul 28 Javascript
基于JavaScript实现随机颜色输入框
Dec 10 Javascript
three.js中文文档学习之创建场景
Nov 20 Javascript
VUE基于NUXT的SSR 服务端渲染
Nov 30 Javascript
Vue开发之封装上传文件组件与用法示例
Apr 25 Javascript
CountUp.js数字滚动插件使用方法详解
Oct 17 Javascript
vue.js实现左边导航切换右边内容
Oct 21 Javascript
vue3语法糖内的defineProps及defineEmits
Apr 14 Vue.js
微信小程序实战之顶部导航栏(选项卡)(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网站在线人数统计
2008/04/09 PHP
图片按比例缩放函数
2006/06/26 Javascript
解决 FireFox 下[使用event很麻烦] 的问题.
2006/08/22 Javascript
JS获取下拉列表所选中的TEXT和Value的实现代码
2014/01/11 Javascript
JavaScript实现向OL列表内动态添加LI元素的方法
2015/03/21 Javascript
javascript学习笔记之函数定义
2015/06/25 Javascript
jQuery+CSS3文字跑马灯特效的简单实现
2016/06/25 Javascript
AngularJs bootstrap搭载前台框架——准备工作
2016/09/01 Javascript
js HTML5手机刮刮乐代码
2020/09/29 Javascript
jQuery EasyUI Panel面板组件使用详解
2017/02/28 Javascript
在vue中,v-for的索引index在html中的使用方法
2018/03/06 Javascript
javascript闭包的使用之按钮切换功能
2018/08/30 Javascript
es6基础学习之解构赋值
2018/12/10 Javascript
JS判断数组是否包含某元素实现方法汇总
2020/06/24 Javascript
[01:36:57]【09DOTA2第一视角】小骷髅
2014/04/16 DOTA
[46:53]Secret vs Liquid 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
[33:09]完美世界DOTA2联赛循环赛 Forest vs DM BO2第二场 10.29
2020/10/29 DOTA
学习python之编写简单乘法口诀表实现代码
2016/02/27 Python
Python进阶之尾递归的用法实例
2018/01/31 Python
Python解决八皇后问题示例
2018/04/22 Python
set在python里的含义和用法
2019/06/24 Python
django自定义模板标签过程解析
2019/12/14 Python
如何基于Python实现自动扫雷
2020/01/06 Python
浅谈python print(xx, flush = True) 全网最清晰的解释
2020/02/21 Python
Python3创建Django项目的几种方法(3种)
2020/06/03 Python
如何以Winsows Service方式运行JupyterLab
2020/08/30 Python
如何获得EntityManager
2014/02/09 面试题
运动会广播稿150字
2014/02/19 职场文书
学生会竞选演讲稿学习部
2014/08/25 职场文书
关于安全的广播稿
2014/10/23 职场文书
运动会闭幕词
2015/01/28 职场文书
个人党性锻炼总结
2015/03/05 职场文书
丧事主持词
2015/07/02 职场文书
详解Python常用的魔法方法
2021/06/03 Python
如何用六步教会你使用python爬虫爬取数据
2022/04/06 Python
Echarts如何重新渲染实例详解
2022/05/30 Javascript