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

发布时间 - 2026-01-11 00:41:47    点击率:

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

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

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

业务需求:

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 
} 

运行:

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


# 微信小程序  # 轮播图  # 微信小程序 swiper组件轮播图详解及实例  # 微信小程序之swiper轮播图中的图片自适应高度的方法  # 微信小程序视图容器(swiper)组件创建轮播图  # 微信小程序使用swiper组件实现类3D轮播图  # 微信小程序 轮播图swiper详解及实例(源码下载)  # 微信小程序使用swiper组件实现层叠轮播图  # 微信小程序实现的3d轮播图效果示例【基于swiper组件】  # 微信小程序实现轮播图效果  # 微信小程序实现Swiper轮播图效果  # 微信小程序实现轮播图指示器  # 放在  # 要把  # 我们可以  # 自定义  # 产品展示  # 不能超过  # 少说  # 时长  # 大家多多  # 自动播放  # 器上  # id  # data  # linkUrl  # url  # swiperCurrent  # item  # swiperChange  # block  # slider 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 香港服务器部署网站为何提示未备案?  Linux系统运维自动化项目教程_Ansible批量管理实战  Laravel用户认证怎么做_Laravel Breeze脚手架快速实现登录注册功能  HTML5建模怎么导出为FBX格式_FBX格式兼容性及导出步骤【指南】  EditPlus中的正则表达式 实战(2)  如何构建满足综合性能需求的优质建站方案?  大型企业网站制作流程,做网站需要注册公司吗?  Laravel怎么使用artisan命令缓存配置和视图  Laravel怎么实现搜索功能_Laravel使用Eloquent实现模糊查询与多条件搜索【实例】  Laravel如何实现邮箱地址验证功能_Laravel邮件验证流程与配置  阿里云网站搭建费用解析:服务器价格与建站成本优化指南  Laravel怎么导出Excel文件_Laravel Excel插件使用教程  如何在阿里云完成域名注册与建站?  QQ浏览器网页版登录入口 个人中心在线进入  如何基于PHP生成高效IDC网络公司建站源码?  Laravel Artisan命令怎么自定义_创建自己的Laravel命令行工具完全指南  php json中文编码为null的解决办法  如何快速生成可下载的建站源码工具?  西安专业网站制作公司有哪些,陕西省建行官方网站?  公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?  千问怎样用提示词获取健康建议_千问健康类提示词注意事项【指南】  php结合redis实现高并发下的抢购、秒杀功能的实例  如何在 React 中条件性地遍历数组并渲染元素  成都网站制作公司哪家好,四川省职工服务网是做什么用?  韩国服务器如何优化跨境访问实现高效连接?  Laravel怎么使用Intervention Image库处理图片上传和缩放  Edge浏览器如何截图和滚动截图_微软Edge网页捕获功能使用教程【技巧】  Laravel如何处理文件下载请求?(Response示例)  如何快速完成中国万网建站详细流程?  高防服务器租用如何选择配置与防御等级?  Laravel如何与Vue.js集成_Laravel + Vue前后端分离项目搭建指南  javascript中的数组方法有哪些_如何利用数组方法简化数据处理  Laravel如何实现邮件验证激活账户_Laravel内置MustVerifyEmail接口配置【步骤】  Laravel如何从数据库删除数据_Laravel destroy和delete方法区别  如何在宝塔面板中创建新站点?  Laravel如何配置Horizon来管理队列?(安装和使用)  Laravel数据库迁移怎么用_Laravel Migration管理数据库结构的正确姿势  Python函数文档自动校验_规范解析【教程】  Laravel怎么配置自定义表前缀_Laravel数据库迁移与Eloquent表名映射【步骤】  HTML5段落标签p和br怎么选_文本排版常用标签对比【解答】  Laravel如何与Inertia.js和Vue/React构建现代单页应用  南京网站制作费用,南京远驱官方网站?  Python数据仓库与ETL构建实战_Airflow调度流程详解  如何在景安服务器上快速搭建个人网站?  什么是JavaScript解构赋值_解构赋值有哪些实用技巧  Laravel怎么设置路由分组Prefix_Laravel多级路由嵌套与命名空间隔离【步骤】  做企业网站制作流程,企业网站制作基本流程有哪些?  ChatGPT常用指令模板大全 新手快速上手的万能Prompt合集  Firefox Developer Edition开发者版本入口  Linux网络带宽限制_tc配置实践解析【教程】