jQuery MiniUI

标题: mini-fit 的 resize 不对 [打印本页]

作者: jamesfancy    时间: 2016-10-26 15:33:29     标题: mini-fit 的 resize 不对

试用的发现一个问题,如果在 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


作者: dforce    时间: 2016-10-26 16:06:38

有什么问题
mini-fit是布局控件,不是html元素,是js计算完高度重新调整的,window.onresize的时候还没有计算完成
作者: jamesfancy    时间: 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 高度呢
作者: dforce    时间: 2016-10-26 16:49:23

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

你需要获取这个尺寸做什么
mini-fit的意义就是自动撑满剩余高度,不需要你自己计算
作者: jamesfancy    时间: 2016-10-27 11:28:15

dforce 发表于 2016-10-26 16:49
你需要获取这个尺寸做什么
mini-fit的意义就是自动撑满剩余高度,不需要你自己计算 ...

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

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

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




欢迎光临 jQuery MiniUI (http://miniui.com/discuss/) Powered by Discuz! X2