我对jQuery.tabs没有乐趣(原文如此)。这个小部件非常狡猾,因为它变成了基本的HTML,如此
<div>
<ul>
<li>Tab #1</li>
...
</ul>
<div for panel #1>
</div>
<div for panel #2>
</div>
...
</div>
进入一个可爱的标签对话。 (它通过重新设置UL然后切换面板DIV的“display”属性来显示/不显示所选的任何面板。)
现在我发现如果我在每个面板中插入一个可滚动的IFRAME,我可以在我的JS项目中省去很多麻烦。
我试图改进的一个可用性问题是,当选项卡式面板变得比浏览器窗口大时,用户最终会得到太多滚动条。我试图通过将选项卡式面板的大小链接到$(窗口)的大小来避免这种情况。也就是说,我在$(window)上捕获并处理resize事件。
为了让我的生活变得可以忍受,所有组件都相对较大。特别是IFRAME(100%宽度,100%高度)也是如此。唯一的例外是面板DIV,它们具有固定的高度(以px为单位)。这是我在调整大小操作期间操作的唯一维度css属性。
所有这些都适用于FF和Chrome,但IE6正在做一些相当可爱的事情:只要我不影响浏览器窗口的宽度(但只改变它的高度),只有面板DIV的高度变化;包含的IFRAME不会改变。由于此行为,无法将标签面板缩短到IFRAME的高度以下。我可以延长DIV,是的。但在这种情况下,IFRAME不会填补专家组。
当我对浏览器窗口的宽度做出最轻微的改变时,一切都变好了。在那一刻,IFRAME扩展以同时追赶延长的DIV或DIV和IFRAME合同。
怪异。我插入了无用的CSS指令,如“position:relative”和“zoom:1”。同时用“display:block”轻推显示。到目前为止没有喜悦。
有什么想法吗?
感谢。
答案 0 :(得分:0)
没关系。刚才有一个灵感:jQuery.tabs并不介意我是否完全使用面板IFRAME。也就是说,我可以取消包装DIV,因此不需要依赖IE6来保证包装的IFRAME的自动相对尺寸(高度= 100%,宽度= 100%)。 IFRAME现在固定为高度px,并由我的resizeHandler直接调整大小。 4个浏览器的生活现在很好。 Yipee!