计算Placeholder可能的高度问题
现在我想实现一个效果:
一张手机显示的新闻类网页,有图片也有文字,图片的宽度都近似于100%的屏幕宽度,并且是随着屏幕宽度的变化而变化的。高度是等比例进行缩放的。
但是这些图片我希望使用懒加载的办法加载进去,在懒加载之前,在显示图片的位置先显示一个placeholder的图片(或者一个其他什么东西都可以)。但是我希望placeholder的高度和 最终图片 的高度是一样的,也就是不希望图片加载完成之后页面高度突变。
而最终图片的原始宽高我是可以通过服务器知道的,可以在HTML生成的时候就知道,只是这张图片在我这台设备上最终会显示的宽高我需要计算。
其实就像网易新闻里面的那种效果,我要怎么去实现呢?
web web前端开发 HTML css JavaScript
没时间负泽任了
11 years, 1 month ago
Answers
由于图片的原始宽高你可以事先知道,而图片要显示的宽度是固定的(假如要撑满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() );
});
chiseen
answered 11 years, 1 month ago