zoukankan      html  css  js  c++  java
  • Miniapp => image 的另一种渲染形式

    小程序中,图片的另一种渲染形式。

    与其说是小程序,其实就是图片的渲染

    一、坑之所在

    今天我在做小程序的过程中,遇到了首页需要加载大长图的情况
    你说什么?什么是大长图?? 就是 375 * 8000 px.....
    当然,第一时间我不假思索的直接写:

    <scroll-view class="img-wrap" scroll-y>
      <image class="img" mode="widthFix" src="xxx" />
    </scroll-view>
    

    坑来也

    因为图片太大,所以导致加载的时候会出现这种情况
    上坑:

    加载中

    二、填坑三法

    1、lazy-load 属性

    图片懒加载,在即将进入一定范围(上下三屏)时才开始加载

    所以,改进:

    <scroll-view class="img-wrap" scroll-y>
      <image lazy-load class="img" mode="widthFix" src="xxx" />
    </scroll-view>
    

    Oh my god!Holy shit!完全没有用!Why?

    但是!我并没有就此放弃良好的体验感!

    2、bindload

    当图片载入完毕时触发,event.detail = {height, width}

    So,继续改进:

    <scroll-view class="img-wrap" scroll-y>
      <image lazy-load class="img" mode="widthFix" src="xxx" :style="{ opacity: opacity }" bindload="imgLoad" />
    </scroll-view>
    
    methods: {
            reportLoad: function(e) {
                setTimeout(() => {
                    this.opacity = 1;
                }, 500);
            }
    }
    

    这样一来,再配合 CSS 的样式,可以初步实现一个类似淡入的过程
    不至于像一开始那样突兀

    开始
    淡入

    但是!这样一开始会有一段时间的背景
    虽然时间不长,但还是有优化的空间!

    Ready? Go!

    3、渐进式图片加载

    说到渐进式,有的人可能会感到陌生
    但是你肯定见过这个效果

    比如,这样:

    渐进式

    怎么样?这种感觉都不陌生吧,那到底怎么搞呢?
    一起来看看

    • 1、photoshop

    photoshop

    咱不解释这种...就是在保存图片的时候选择连续。

    • 2、缩略图
      说到这种方法,就不得不提
      img 标签下的 lowsrc 感兴趣的小伙伴可以搜一下子
      小程序中不是 img, 所以我也就不说了
    <img lowsrc="xxx" src="xxx" alt="xxx">
    

    我要说的是接下来的这种,
    再次改进:

    <scroll-view class="img-wrap" scroll-y>
      <image class="img-blur" mode="widthFix" src="xxx" />
      <image lazy-load class="img" mode="widthFix" src="xxx" :style="{ opacity: opacity }" bindload="imgLoad" />
    </scroll-view>
    

    什么意思呢?
    其实就是在原来基础上又加了一个图片
    这张图就是原图压缩成马赛克的样子
    这样的话就可以保证在加载大图的时候先看到一个缩略图
    之后大图会逐渐覆盖缩略图

    就成了酱紫:

    缩略图

    等加载完毕后就是原图了!

  • 相关阅读:
    Redis持久化之RDB
    linux中查看进程中的线程
    Redis客户端
    Redis之GEO
    Redis之发布订阅
    Redis之HyperLogLog
    CSP-S2020游记
    根据表名 查询 表的列,备注,类型等 SQL
    mybatis-plus的使用 ------ 入门
    IntelliJ IDEA 版本控制(svn、git) 修改文件后,所属目录的颜色也变化
  • 原文地址:https://www.cnblogs.com/nyya/p/13099056.html
Copyright © 2011-2022 走看看