计算Placeholder可能的高度问题-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

计算Placeholder可能的高度问题

a123456678 2016-03-25 15:37:24 1013

现在我想实现一个效果:

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

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

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

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

分享到
取消 提交回答
全部回答(1)
  • a123456678
    2019-07-17 19:14:30

    由于图片的原始宽高你可以事先知道,而图片要显示的宽度是固定的(假如要撑满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() );
    });
    0 0
+ 订阅

时时分享云计算技术内容,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。

推荐文章