jQuery MiniUI

 找回密码
 立即注册
查看: 4191|回复: 5
打印 上一主题 下一主题

mini-fit 的 resize 不对 [复制链接]

Rank: 1

跳转到指定楼层
楼主
发表于 2016-10-26 15:33:29 |只看该作者 |倒序浏览
试用的发现一个问题,如果在 window.onresize 中去取 mini-fit 的高度,有时候会是上一次的高度,尤其是在浏览直接最大最小化的时候。

在演示页面中
http://miniui.com/demo/index.html#src=fit/fit.html

给 mini-fit 加个ID  id="theFit"
最后再添加一段脚本
  1. window.onresize = function() {
  2.       console.log("testing", $(window).height(), $("#theFit").height());
  3. };
复制代码

会发现最大化/恢复浏览器窗口的时候,theFit 的 height 是不对的,比如
VM1172:14 testing 568 532  // 现在是匹配的
VM1172:14 testing 358 532  // 窗口变小了,theFit 还是原来那么大
VM1172:14 testing 568 322  // 窗口变大了,theFit 居然变小了
VM1172:14 testing 358 532
VM1172:14 testing 568 322

Rank: 8Rank: 8

沙发
发表于 2016-10-26 16:06:38 |只看该作者
有什么问题
mini-fit是布局控件,不是html元素,是js计算完高度重新调整的,window.onresize的时候还没有计算完成

Rank: 1

板凳
发表于 2016-10-26 16:29:30 |只看该作者
dforce 发表于 2016-10-26 16:06
有什么问题
mini-fit是布局控件,不是html元素,是js计算完高度重新调整的,window.onresize的时候还没有计 ...

理论上来说,计算也是在 resize 里面,按注册先后顺序执行。那我后注册的 resize 怎么会在 mini-fit 改变大小之前执行呢?

如果由于某些机制导制后注册的事件在 mini-fit 改变大小前执行了,那么,我又该在什么时机去获取正确的  mini-fit 高度呢

Rank: 8Rank: 8

地板
发表于 2016-10-26 16:49:23 |只看该作者
jamesfancy 发表于 2016-10-26 16:29
理论上来说,计算也是在 resize 里面,按注册先后顺序执行。那我后注册的 resize 怎么会在 mini-fit 改变 ...

你需要获取这个尺寸做什么
mini-fit的意义就是自动撑满剩余高度,不需要你自己计算

Rank: 1

5#
发表于 2016-10-27 11:28:15 |只看该作者
dforce 发表于 2016-10-26 16:49
你需要获取这个尺寸做什么
mini-fit的意义就是自动撑满剩余高度,不需要你自己计算 ...

里面有个 canvas,是调用的一个组件,需要在容器改变大小的时候重绘,重绘的需要去取容器高度。虽然可以重新布局,但是人家早就已经写成组件了,组件内部的布局我控制不了啊。

Rank: 8Rank: 8

6#
发表于 2016-10-27 13:04:37 |只看该作者
jamesfancy 发表于 2016-10-27 11:28
里面有个 canvas,是调用的一个组件,需要在容器改变大小的时候重绘,重绘的需要去取容器高度。虽然可以 ...

那你onresize里延时一会,等mini-fit自己调整完再获取尺寸

Archiver|普加软件

GMT+8, 2024-9-30 12:32 , Processed in 1.037689 second(s), 10 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部