开发者社区> 问答> 正文

计算Placeholder可能的高度问题

现在我想实现一个效果:

一张手机显示的新闻类网页,有图片也有文字,图片的宽度都近似于100%的屏幕宽度,并且是随着屏幕宽度的变化而变化的。高度是等比例进行缩放的。

但是这些图片我希望使用懒加载的办法加载进去,在懒加载之前,在显示图片的位置先显示一个placeholder的图片(或者一个其他什么东西都可以)。但是我希望placeholder的高度和最终图片的高度是一样的,也就是不希望图片加载完成之后页面高度突变。

而最终图片的原始宽高我是可以通过服务器知道的,可以在HTML生成的时候就知道,只是这张图片在我这台设备上最终会显示的宽高我需要计算。

其实就像网易新闻里面的那种效果,我要怎么去实现呢?
screenshot
screenshot

展开
收起
a123456678 2016-03-25 15:37:24 3209 0
1 条回答
写回答
取消 提交回答
  • 由于图片的原始宽高你可以事先知道,而图片要显示的宽度是固定的(假如要撑满100%),所以可算出来图片要显示的高度。

    要显示的高度 = 原始高度 / 原始宽度 * 要显示的宽度

    <img class="lazy" src="temp-url" data-original="real-url" data-width="800" data-height="600" width="100%">
    $('img.lazy').each(function(){
      var $this = $(this);
      var originalWidth = +$this.data('width');
      var originalHeight = +$this.data('height');
      $this.height( originalHeight / originalWidth * $this.width() );
    });
    2019-07-17 19:14:30
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载