如题。因为目前使用 lazyload 的 js 插件都是占位图固定尺寸的,如果占位图与需要加载的图片尺寸差别很大的话, 会出现页面的内容跳动。目前微信公众号的文章就解决的很好,占位图都是灰色的,但是尺寸与要加载的实际图片尺寸一致,加载出来的效果比较平滑。目前,可以想到的一个方法是让前端提供当前设备的浏览器宽度,然后计算高度。感觉还是不太靠谱。大家有没有更好的思路。多谢。
1
loveyu 2015-11-09 18:55:47 +08:00
首先你得知道图片显示的宽高
|
2
Jaylee 2015-11-09 19:07:16 +08:00
我这边目前也是使用让接口返回宽和高,然后加载占位图的,应该没有其它的办法了吧
|
3
zhicheng 2015-11-09 19:20:07 +08:00 via Android
固定高度计算宽带更合理。
|
4
SourceMan 2015-11-09 19:21:40 +08:00 via Android
让服务器给你返回
|
5
paloalto 2015-11-09 19:28:58 +08:00
|
6
yushiro 2015-11-09 19:33:54 +08:00 via iPhone
其实需要知道的并不是图片的宽高,而是需要知道图片的宽高比,设计 api 的时候需要多带一个参数返回前端
|
7
qgy18 2015-11-09 21:36:44 +08:00 via iPhone
移动端需要知道高宽比,根据宽算出高来。
|
8
Light3 2015-11-09 21:50:09 +08:00
可你尝试固定宽度 比如就 100PX 这样的 毕竟手机基本上就是一张图一行
|
9
fakefish 2015-11-09 22:52:43 +08:00
如果图片是个正方形,可以用个 1px 的 base64 自动填充了
|
10
Shy07 2015-11-09 23:33:29 +08:00
有一种图片叫渐进 jpg ,还有一种叫交错 png/gif
|
11
wjfz 2015-11-10 01:48:29 +08:00 via Android
我倒是有种想法不知道可行性,请大家给予批评。
存图片的时候把宽高写入文件名,前端正则出宽高然后占位。 |
12
learnshare 2015-11-10 09:25:16 +08:00
提前把图像大小写到 HTML 内敛样式中,前提是页面由后端渲染,并且数据库里保存了图像大小
|
13
skywatcher 2015-11-10 11:42:21 +08:00
之前有想过这个问题,主要是避免加载的抖动,我感觉可以这样
http://7ximdq.com1.z0.glb.clouddn.com/1445326252487#w=1000#h=900 开始 URL 都已经传到前端,可以通过#w=1000#h=900 获取数据来设置占位大小(根据固定宽度或高度),动态加载图片时就不会出现抖动 不过需要后端服务器的支持,保存和处理返回的 URL 附带这些参数 知乎跳转到对应答案和评论就是这样实现的 http://www.zhihu.com/question/36173438/answer/68338175?group_id=647004140790923264#comment-102845723 |
14
skywatcher 2015-11-10 11:49:07 +08:00
忽然想到,如果使用第三方服务器也可以,第三方是支持获取指定图片的信息的,可以自己请求后添加到 URL 尾部,前端就可以使用了
|