微信小程序轮播图高度自适应

微信小程序轮播图高度自适应图片自适应在网站上是内置好的 只需要设置宽度即可 但在微信小程序非要做一个封装 高度不是随宽度自适应 真是操蛋 不过谁叫在人家的平台的搞呢 还是不得不屈服于小马哥的淫威啊 在微信小程序上实现图片自适应需要配合 javascript 脚本 也就是需要动态计算才能实现 具体修改如下 先看下 view 层是什么样的 viewclass zh carousel style margin top carouselMarg rpx viewclass zh carousel style margin top carouselMarg rpx

图片自适应在网站上是内置好的,只需要设置宽度即可,但在微信小程序非要做一个封装,高度不是随宽度自适应,真是操蛋,不过谁叫在人家的平台的搞呢,还是不得不屈服于小马哥的淫威啊。。

在微信小程序上实现图片自适应需要配合javascript脚本,也就是需要动态计算才能实现,具体修改如下:

先看下view层是什么样的

<view class="zh-carousel" style="margin-top: { 
      { 
      carouselMarginTop}}rpx"> <swiper indicator-dots="true" autoplay="true" interval="4000" duration="500" class="zh-swiper" style="height: { 
      { 
      carouselHeight}}px"> <swiper-item class="zh-swiper-item" wx:for="{ 
    {carouselList}}" wx:key="index"> <image src="{ 
    { item.image }}" mode="widthFix" bindload="adaptCarouselHeight"> 
     image>  
      swiper-item>  
       swiper>  
        view> 

因为设置了导航样式为自定义,所以需要给轮播图加个margin-top值 ,不然会被小程序功能按钮遮挡

{ 
    "usingComponents": { 
   }, "navigationStyle": "custom" } 

image.png

下面看下数据是如何计算的(注释很详细),如果不想细看的话,直接对着撸就行了

Page({ 
    data: { 
    list: [], carouselList: [ { 
   image: '../../images/img-wx-gzh.png'}, ], carouselMarginTop: 0, // 这两个初始值必须要设置 carouselHeight: 0 }, onLoad: function() { 
    this.adaptCarouselMarginTop(); // 适配轮播图外间距 }, // 适配轮播图外间距 adaptCarouselMarginTop() { 
    let systemInfo = wx.getSystemInfoSync(), pxToRpxScale = 750 / systemInfo.windowWidth, // px转换到rpx的比例 ktxStatusHeight = systemInfo.statusBarHeight * pxToRpxScale, // 状态栏高度 navigationHeight = 44 * pxToRpxScale; // 导航高度,44是大概估值 this.setData({ 
    carouselMarginTop: navigationHeight + ktxStatusHeight + 10 // 10是一个预估值,可根据呈现效果修改 }); }, // 适应轮播图高度 adaptCarouselHeight(e) { 
    let imgWidth = e.detail.width, // 原图宽高 imgHeight = e.detail.height, screenWidth = wx.getSystemInfoSync().screenWidth; // 手机屏幕宽度 let ratio = (screenWidth - screenWidth/750*60) / imgWidth; this.setData({ 
    carouselHeight: imgHeight * ratio }); } } 

欢迎关注:https://www.fenxianglu.cn/

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/227523.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月16日 下午9:07
下一篇 2026年3月16日 下午9:08


相关推荐

  • C语言冒泡排序算法及代码

    C语言冒泡排序算法及代码C 语言冒泡排序算法及代码冒泡排序是排序算法的一种 思路清晰 代码简洁 常被用在大学生计算机课程中 冒泡 这个名字的由来是因为越大的元素会经由交换慢慢 浮 到数列的顶端 故名 这里以从小到大排序为例进行讲解 基本思想及举例说明冒泡排序的基本思想就是不断比较相邻的两个数 让较大的元素不断地往后移 经过一轮比较 就选出最大的数 经过第 2 轮比较 就选出次大的数 以此类推 下面以对 32

    2026年3月17日
    2
  • 13个大数据应用案例,告诉你最真实的大数据故事[通俗易懂]

    13个大数据应用案例,告诉你最真实的大数据故事[通俗易懂]   大数据真的太神奇了,真的可以让改变一个企业的运营吗?答案是肯定的。大数据目前是当下最火热的词了,你要是不知道大数据这个概念,都不好意思在众人面前开口了。然而实际上很多人都对大数据的应用模糊不清。现在就让我们从下面十三个大数据应用案例来了解下最真实的大数据故事把,并鲜明得了解大数据在生活当中实际应用的情况。大数据应用案例之电视媒体  对于体育爱好者,追踪电视播放的最新运动赛事几乎是一件不…

    2022年6月4日
    80
  • eagleget安卓_android startactivityforresult

    eagleget安卓_android startactivityforresult前言:AndroidEagleEye官方介绍在https://github.com/MindMac/AndroidEagleEye/blob/master/README-zh.md真的像老鹰样检测系统调用了哪些api,作者很厉害!作为笔记来说,是官方readme的补充,也是自己的备忘。笔记1,EagleEye源码能否修改再重新打包?能,修改代码后加上

    2022年8月16日
    7
  • IP数据包和ICMP数据包的结构

    IP数据包和ICMP数据包的结构一 IP 数据包报头 IPV4 和 IPV6 比较 每行 32bit 4 字节 前 5 行一共 20 字节 version 版本号 4bit IHL IP 头部长度 4bit typeofservic 服务类型 标记 识流量 8bit totallength IP 数据包总长度 16bit identificati 在网络层区分流量 不同流量产生不同的标识符 流量重组 16bit flag

    2025年12月13日
    9
  • Java设计模式(十七)之行为型模式:责任链模式

    Java设计模式(十七)之行为型模式:责任链模式

    2021年4月9日
    113
  • 如何升级PowerShell

    如何升级PowerShell

    2021年11月26日
    62

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号