Php 如何在动态生成的jQuery UI选项卡上避免FOUC
我使用jQUery UI选项卡动态创建多个选项卡——这些选项卡是使用视图页面上的Php 如何在动态生成的jQuery UI选项卡上避免FOUC,php,jquery-ui,codeigniter,tabs,fouc,Php,Jquery Ui,Codeigniter,Tabs,Fouc,我使用jQUery UI选项卡动态创建多个选项卡——这些选项卡是使用视图页面上的foreach创建的,如下所示(一些codeigniter标记): $(函数($){ $('#plants').tabs('paging',{follow:true}); }); 等 如上所述,凸耳成形良好。问题是未格式化内容的好的ol'Flash。它发生在IE、Chrome、FF上 我在jQuery文档中尝试了CSS选项,但没有成功 有一个简单的JS,它在上插入CSS样式,然后在特定的id上应用{disp
foreach
创建的,如下所示(一些codeigniter标记):
$(函数($){
$('#plants').tabs('paging',{follow:true});
});
等
如上所述,凸耳成形良好。问题是未格式化内容的好的ol'Flash。它发生在IE、Chrome、FF上
我在jQuery文档中尝试了CSS选项,但没有成功
有一个简单的JS,它在
上插入CSS样式,然后在特定的id
上应用{display:none}
——但这会使我的面板消失,等待用户交互。我需要第一个面板在加载时对用户可见,以及顶部的其他选项卡——没有该死的FOUC
有人知道如何在jQueryUI选项卡上明确解析FOUC吗?它看起来真的不太好,如果我不能解决这个问题,我可能不得不完全放弃标签
非常感谢任何指点/路线图 建议:
...prevent a FOUC (Flash of Unstyled Content) before tabs are initialized
Add the necessary classes to hide an inactive tab panel to the HTML right away - note that this will not degrade gracefully with JavaScript being disabled:
<div id="example" class="ui-tabs">
...
<div id="a-tab-panel" class="ui-tabs-hide"> </div>
...
</div>
…在初始化选项卡之前防止FOUC(未设置样式的内容的闪烁)
添加必要的类以立即将非活动选项卡面板隐藏到HTML中-请注意,禁用JavaScript不会使其正常降级:
...
...
不确定您是否尝试过此操作,或者它是否确实相关。我发现在head标记中准备好的文档中启动tabs()函数可以防止选项卡的非样式闪烁
$(document).ready(function() {
//fire off the tabs
$(function() {
$( "#tabs" ).tabs();
});
});
我用于通过ajax显示选项卡的另一种方法是ajax请求,该请求通过jquery.tmpl写入选项卡。在DOM准备就绪之前隐藏整个页面(
元素),然后在DOM准备就绪后再次使html元素可见:
$('html').css('visibility','hidden');
$(function() {
$('html').css('visibility','visible');
$('#tabs').tabs();
});
这是因为
html
元素在head
中遇到此javascript时,在任何其他DOM元素(如body
)之前可用可用。您有在线演示吗?请查看我的答案,了解一个很好的方法。谢谢,但我尝试了,结果没有什么不同--我想知道是否有办法通过ajax按需加载其他选项卡-有什么想法吗?有趣的是,这让事情变得更糟,使用document.ready指令时,flash实际上需要更长的时间——在页面中放置较高和较低位置时都会发生这种情况——是否有指向您提到的ajax库的链接?在术语或脚本中还加载了什么?我只是在使用jquery ajax请求。。。Jquery模板写入选项卡,然后我启动选项卡。。。这都是jquery…谢谢,我来看看如何使用jqajax——你有没有关于如何实现它的文档/tut的链接?或者您所做的只是使用上面提到的代码?您有两个嵌套的document.ready()
,因为$()
是$(document.ready()
的快捷方式。
$('html').css('visibility','hidden');
$(function() {
$('html').css('visibility','visible');
$('#tabs').tabs();
});