在vue项目中 使用swiper轮播图的关于 在ios中图片白边闪屏踩坑记录

6 篇文章 0 订阅

场景描述:

近日,接到一个需求,改善APP首页的布局,需要在顶部添加一个可滚动的栏目导航,以切换栏目然后切换栏目内容类似于唯品会目前的切换效果。如下图

问题描述:

在切换顶部栏目的时候,下面内容页的banner图片会出现短暂的白边闪屏。在android中并没有什么问题,在ios中,在左右切换栏目页的时候,顶部的轮播图会有一瞬间的图片闪屏白边。

原因分析:

思考原因可能是因为我没有对整个页面进行一个懒加载。因为栏目页面的数据我都是一次性加载出来的。而且都在一个页面。因为种种原因,所以暂时不能实现切换栏目的时候进行一个页面懒加载。

所以推断问题出现可能是因为:1.swiper 插件的兼容性;2.图片加载问题;3.以及网络问题;4.还有就是图片元素的问题

解决方案:

起初以为是图片没加载完的原因,然后预加载、懒加载图片,还是不能解决。然后尝试着用本地静态图片,白边出现的概率少了一点,但是还是有这个问题,推断和网络还是有点关系。

之后试着就换了一种切换效果,之前slide的切换效果,默认为"slide"(位移切换),改变了切换效果之后就不会出现白边问题了。但是这样并不能解决问题。其他的动画都不适合栏目切换的效果需求。

最后在我几经周折中发现问题可能和图片的宽高有关。于是我就是着将原来的样式

img{
   display:inline-block;
   width: 100%;     // 高度自适应
}

调整为:

img{
    display:inline-block;
    width: 100%;     
    height:2.4rem;     // 或是设置 min-height 也可以解决问题
}

最后发现:原因推测可能是在ios中,对于图片加载的时候不能识别到图片的宽高,需要明确一个高度值,以备系统加载,因为我并没有给图片加上明确的高度。没有明确的高度,所以ios就需要自己去识别图片的高度。在它分析图片高度的同时加载图片,于此同时切换栏目的话,就会存在白边问题,因为图片识别并没有加载完成。

推测应该是在设置了高度之后,ios就会先把这个宽高的框加载出来,然后把图片加载出来,就不会有白边闪屏了。

 

swiper还有一个问题:

在 swiper 内部的 swiper-slide 中的布局中,与切换动画方向同方向的overflow: scroll; 无效。所以只能在swiper里面嵌套 swiper 。。。

以上是我在项目中遇到的 swiper 的问题。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值