浏览 6929 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-01-27
这篇文章主要是来更大家将一下为什么会有这个bug 以及该如何避免 同时希望有朋友帮忙想出一个好的完美的解决方案 先谢谢大家了 同时谢谢所有关注ecside的朋友们 先说一下我的建议: 1 ectable的宽度最好不要使用 百分比 2 当ectable使用百分宽度时,最好各个列也使用百分比,不要百分比和像素混合着用 (当然总和不要超过ectable的width宽度) 3 不管是使用什么样的宽度(百分比或像素),建议都要使用一个“自动宽度”的column, 就是说不要给所有的ec:column都指定width,给其中一个点“自由”,这样很多已知的关于列宽调整的问题都可以解决。 关于为什么百分比又bug 当你设置100% 的时候, table的宽度随窗口大小而变 而这时候有个问题就是 你给各个列设置的宽度不会跟着去变 例如 只有两列 各50% 页面第一次打开的时候, 大小是200像素 那么 每列100(其实不是 因为还有空白间距等, 但这里就取这么个大概数,便于理解) 当窗口变大到300的时候 列会自动重新计算 变成150; 但是此时 ecside的js脚本并不会重新计算,所以他纪录的还是原先的大小 也许你会问 为什么不重新计算,问题就是 没有一个快速简单合理的算法 例如原先窗口大小 200, 每列100 我调整成了 50 150 这时候后 窗口变大了 我该怎么重新计算这 50 和 100 才合理呢? 其实大家注意看一下 那些商业的 还有其他很多的开元的 可调节列宽的组件 都是固定宽度的 都不支持 100% ,我想大家的理由都是差不多的. 当然 如果你按我的第2 3条建议去做 很多时候不会有这个bug 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-01-29
按百分比的js代码有点bug:
ecside.js的197行: var w=parentN.clientWidth-parseInt(parentN.style.paddingLeft)-parseInt(parentN.style.paddingLeft); 我修改为: var w=parentN.clientWidth if (parentN.style.paddingLeft) { w=w- parseInt(parentN.style.paddingLeft); } if (parentN.style.paddingRight) { w=w- parseInt(parentN.style.paddingRight); } |
|
返回顶楼 | |
发表时间:2007-01-29
原来如此!try it!
|
|
返回顶楼 | |
发表时间:2007-01-29
bjwulin 写道 按百分比的js代码有点bug:
ecside.js的197行: var w=parentN.clientWidth-parseInt(parentN.style.paddingLeft)-parseInt(parentN.style.paddingLeft); 我修改为: var w=parentN.clientWidth if (parentN.style.paddingLeft) { w=w- parseInt(parentN.style.paddingLeft); } if (parentN.style.paddingRight) { w=w- parseInt(parentN.style.paddingRight); } 哈哈 谢谢提醒 我又写了一个js函数 请用我写的这个替换 js自带的parseInt吧 ECSideUtil.parseIntOrZero=function(num){ var t=parseInt(num); return isNaN(t)?0:t; }; |
|
返回顶楼 | |
发表时间:2007-01-31
ectable的width宽度用px后如果是用可伸缩的左右框架就难了
|
|
返回顶楼 | |