微信小程序轮播图image控件图片mode属性自适应及解决图片加载闪烁bug

简介: 微信小程序轮播图image控件图片mode属性自适应及解决图片加载闪烁bug

微信小程序image控件图片自适应

简述

我是做的轮播图,swiper标签存在默认样式 width 100% ;height 150px;这就会造成图片不完整的情况;而不加mode图片可能会被拉伸,造成图片损坏。

让轮播图自适应高度并且使用mode不拉伸

swiper.wxml

<swiper
      class="swipers"
      indicator-dots="{{indicatorDots}}" 
      autoplay="{{autoplay}}" 
      interval="{{interval}}" 
      duration="{{duration}}" 
      indicator-active-color="{{bg}}"
      circular="{{true}}"
      style='height:{{Hei}}'
      >
        <swiper-item>
          <image src='/static/1.jpeg' mode="widthFix" bindload='imgH'  style="width:100%;"></image>    // image加mode
        </swiper-item>
        <swiper-item>
          <image src='/static/2.jpeg' mode="widthFix" bindload='imgH'  style="width:100%;"></image>
        </swiper-item>
        <swiper-item>
          <image src='/static/3.jpeg' mode="widthFix" bindload='imgH'  style="width:100%;"></image>
        </swiper-item>
      </swiper>

swiper.js

data: {
  indicatorDots: true,
  autoplay: true,
  interval: 4000,
  duration: 1000,
  Hei: "",          //这是swiper要动态设置的高度属性
  navH: 0,
  share: ''
},
imgH:function(e){
  var winWid = wx.getSystemInfoSync().windowWidth;         //获取当前屏幕的宽度
  var imgh=e.detail.height;                     //图片高度
  var imgw=e.detail.width;
  var swiperH=winWid*imgh/imgw + "px"               //等比设置swiper的高度。  
  this.setData({
      Hei:swiperH                                     //设置高度
  })
},

效果如图:

解决加载图片闪烁的bug

描述:刷新页面,或者点击进入页面,图片就先显示上面第一个效果图,然后快速变为上面第二个效果图,这个闪烁的瞬间,用户体验很不好。结合上面代码,原因就是swiper先加载了它默认的150px的高度,然后通过image的bindload方法(让图片高度完整显示的方法)又设置了一次高度,这就造成了闪烁。查了很多资料,找到一个比较合理的方法,就是给swiper加一个类名,设置高度为0,然后通过image的bindload方法再设置高度,这样第一次默认高度就不会出现了。

.swipers {
  height: 0px;
}

图片自适应mode详细参考

目录
相关文章
|
9月前
|
人工智能 小程序 前端开发
【一步步开发AI运动小程序】十九、运动识别中如何解析RGBA帧图片?
本文介绍了如何将相机抽取的RGBA帧图像解析为`.jpg`或`.png`格式,适用于体测、赛事等场景。首先讲解了RGBA图像结构,其为一维数组,每四个元素表示一个像素的颜色与透明度值。接着通过`uni.createOffscreenCanvas()`创建离屏画布以减少绘制干扰,并提供代码实现,将RGBA数据逐像素绘制到画布上生成图片。最后说明了为何不直接使用拍照API及图像转换的调用频率建议,强调应先暂存帧数据,运动结束后再进行转换和上传,以优化性能。
|
小程序
小程序消除图片下边距的三个方法
小程序消除图片下边距的三个方法
438 167
|
小程序 开发者
【微信小程序-原生开发】实用教程05-首页(含自定义调试模式、插入图片、图文排版、底部留白、添加本地图片)
【微信小程序-原生开发】实用教程05-首页(含自定义调试模式、插入图片、图文排版、底部留白、添加本地图片)
337 0
|
小程序 JavaScript
Taro@3.x+Vue@3.x+TS开发微信小程序,使用轮播图
本文介绍了使用 Taro 和 Vue 创建轮播组件的两种方法:一是通过 `&lt;swiper&gt;` 实现,二是利用 Nut UI 的 `&lt;nut-swiper&gt;` 组件实现。
502 2
Taro@3.x+Vue@3.x+TS开发微信小程序,使用轮播图
|
小程序 JavaScript API
微信小程序开发之:保存图片到手机,使用uni-app 开发小程序;还有微信原生保存图片到手机
这篇文章介绍了如何在uni-app和微信小程序中实现将图片保存到用户手机相册的功能。
3272 0
微信小程序开发之:保存图片到手机,使用uni-app 开发小程序;还有微信原生保存图片到手机
|
小程序 容器
微信小程序常用组件的简单使用 view,scroll-view,swiper,swiper-item,text,rich-text,button,image
本文介绍了微信小程序中常用组件的使用方法,包括view、scroll-view、swiper与swiper-item、text与rich-text、button以及image组件。详细解释了各组件的功能、属性以及如何在小程序页面中进行使用。
微信小程序常用组件的简单使用 view,scroll-view,swiper,swiper-item,text,rich-text,button,image
|
小程序 前端开发
【非常全】微信小程序下载图片到相册,微信小程序自动获取分享图片到相册
【非常全】微信小程序下载图片到相册,微信小程序自动获取分享图片到相册
1204 3
|
前端开发 小程序
【微信小程序-原生开发】实用教程20 - 生成海报(实战范例为生成活动海报,内含生成指定页面的小程序二维码,保存图片到手机,canvas 系列教程)
【微信小程序-原生开发】实用教程20 - 生成海报(实战范例为生成活动海报,内含生成指定页面的小程序二维码,保存图片到手机,canvas 系列教程)
821 0
|
运维 小程序 前端开发
小程序开发问题之在小程序中调用my.chooseImage接口让用户选择图片如何解决
小程序开发问题之在小程序中调用my.chooseImage接口让用户选择图片如何解决