美文网首页
小程序图片预占位加载

小程序图片预占位加载

作者: nCov | 来源:发表于2019-06-11 11:56 被阅读0次

手机QQ 浏览器大家都知道,图文混排最常见了,一打开文章文字显示,图片是一个预占位然后显示,且图片是按照预占位大小显示的,图片不变形不撑开区域,这效果没的说,我喜欢!
分析下:实现这效果 预占位大小和图片大小一致, 既然一致那就有办法。
1.首先我们知道图文混排是A页面与B页面的关系
2. A页面是文章列表(竖这一排一排的)B页面是文章详情页面
3. 用户点击A页面某一排,进入B页面详情

实现思路:当用户点击A页面的 某排数据时,在跳转前就获得图片尺寸(单张||多张),并把得到尺寸传递给B页面。当B页面拿到数据后图片尺寸就是预占位尺寸。

1 不使用小程序自带的图片缩放,根据当前屏幕宽高及图片尺寸按比例进得到一个缩放值(避坑,在使用以下代码前,你得提前获取到每张图片的原始宽度高)

/*@ e 是原始图片含图宽高
  @ p  百分比 90 / 100
       使用场景 有的时候图片是在一个90%容器了
       如果是按照屏幕的可视区来就没办法缩放了
       要按照容器的宽度来计算图片缩放尺寸
 
 */
function imageUtil(e,p) {
  var imageSize = {};
  var originalWidth = e.detail.width;//图片原始宽
  var originalHeight = e.detail.height;//图片原始高
  var originalScale = originalHeight/originalWidth;//图片高宽比
  // console.log('originalWidth: ' + originalWidth)
  // console.log('originalHeight: ' + originalHeight)
  //获取屏幕宽高
  wx.getSystemInfo({
    success: function (res) {
      var windowWidth = res.windowWidth * p ;
      var windowHeight = res.windowHeight;
      var windowscale = windowHeight/windowWidth;//屏幕高宽比
      // console.log('windowWidth: ' + windowWidth)
      // console.log('windowHeight: ' + windowHeight)
      if(originalScale < windowscale){//图片高宽比小于屏幕高宽比
        //图片缩放后的宽为屏幕宽
         imageSize.imageWidth = windowWidth;
         imageSize.imageHeight = (windowWidth * originalHeight) / originalWidth;
      }else{//图片高宽比大于屏幕高宽比
        //图片缩放后的高为屏幕高
         imageSize.imageHeight = windowHeight;
         imageSize.imageWidth = (windowHeight * originalWidth) / originalHeight;
      }
     
    }
  })
  // console.log('缩放后的宽: ' + imageSize.imageWidth)
  // console.log('缩放后的高: ' + imageSize.imageHeight)
  return imageSize;
}
 
module.exports = {
  imageUtil: imageUtil
}



相关文章

  • 小程序图片预占位加载

    手机QQ 浏览器大家都知道,图文混排最常见了,一打开文章文字显示,图片是一个预占位然后显示,且图片是按照预占位大小...

  • 小程序图片加载占位图、默认图片

    小程序图片加载占位图、默认图片 最近有空自己撸一个小程序例子玩下的时候,图片返回的头像有时候是空字符串,所以需要占...

  • js-事件委托&图片预加载

    事件委托 图片预加载 吸顶条 图片预加载

  • 图片预加载

    背景 利用图片的预加载技术获得更好的用户体验 什么是有序预加载和无序预加载 jQuery插件的写法 图片预加载,预...

  • 个人博客—图片懒加载

    个人博客—图片懒加载 页面加载时,请求图片,默认显示占位符图片; 当页面下拉到图片位置时,再把占位符图片替换成相应...

  • JS

    JS 懒加载,预加载 概念:懒加载也叫延迟加载:JS图片延迟加载,延迟加载图片或符合某些条件时才加载某些图片。预加...

  • 微信小程序image组件中的bindload不触发问题

    微信小程序image组件中的bindload不触发问题 原因分析 做小程序图片预加载功能的时候,发现切换页面后总是...

  • 图片懒加载

    懒加载与预加载的基本概念。 懒加载也叫延迟加载:JS图片延迟加载 延迟加载图片或符合某些条件时才加载某些图片。 预...

  • 前端图片加载优化

    预加载 图片预加载可以提高用户体验,对于图片画廊和图片占比很大的网页内容尤其重要 css预加载 利用css的bac...

  • 【JS】图片预加载--无序加载网站loading

    课程前言: 慕课网 --图片预加载 图片预加载的特点: ( 1、网站的Loading页 2、局部图片的加载--表情...

网友评论

      本文标题:小程序图片预占位加载

      本文链接:https://www.haomeiwen.com/subject/ycvffctx.html