欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

微信小程序实战之轮播图(3)

程序员文章站 2022-06-03 17:06:32
轮播图是大部分应用的一个常用的功能,常用于广告投放、产品展示、活动展示等等。 漂亮的轮播图效果可以吸引用户的点击,达到推广产品的作用。 废话少说,下面开始动手。...

轮播图是大部分应用的一个常用的功能,常用于广告投放、产品展示、活动展示等等。

漂亮的轮播图效果可以吸引用户的点击,达到推广产品的作用。

废话少说,下面开始动手。

业务需求:

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)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。