是否可以在PHP中运行Cufon文本替换脚本(或在将其发送到浏览器之前)?我问的原因是,在Cufon能够在它上面画出它的魔力之前,显示的HTML是它的正常浏览器呈现的文本,这是一个小问题。用户在被Cufon的awesomeness替换之前会看到一个未渲染的文本(FOUT)。我注意到呈现的HTML生成了一些标记来代替HTML (canvas和Cufon标记)文本,我想,如果这可以在PHP中完成,然后发送到浏览器,以便浏览器从一开始就实际接收绘制的文本,会怎么样?这是否意味着要移植将文本绘制到PHP的代码?这是一个天才的举动,或者更有可能是愚蠢的,昨晚,我想知道是否有人对这个问题有一些想法。感谢您的阅读。
Cufon.replace('div#nav-menu a h5',{
fontFamily:'United Stencil',
hover: true,
hoverables : {h5 : true}
});
Cufon.replace('.stencil',{fontFamily:'United Stencil'})
Cufon.replace('.heavy',{
fontFamily : 'United Heavy',
hover : true,
hoverables : {
h1:true,
h2:true,
h3:true
}
}); 下面是Cufoned的HTML:
<a class=" heavy" href="/mp_svn/node/5">
<cufon class="cufon cufon-canvas" alt="Products" style="width: 65px; height: 16px;">
<canvas width="77" height="17" style="width: 77px; height: 17px; top: -2px; left: -2px;"></canvas>
<cufontext>Products</cufontext>
</cufon>我想把上面的HTML从一开始就发送给浏览器,pre-Cufon是这样的:
<a href="/mp_svn/node/5">Products</a>发布于 2011-03-01 10:06:22
Cufon有一个在所有文本都被替换后运行的回调函数:http://groups.google.com/group/cufon/browse_thread/thread/20a8d2edd45f1aa5/1a498d21856405cd
你可以选择
$(文档).ready(function(){ $('#content').css('visibility',‘hidden’));Cufon.CSS.ready(function() { $('#content').css('visibility,'visible');});
这对于Firefox/webkit应该很好,但在JS生效之前,IE中仍然会有一个FOUC。如果你想在内容被Cufon替换后能够淡入,你也可以使用$('#content').fadeTo(0, 0);。
编辑
我想出了一个更好的方法。使用#1方法,用CSS隐藏内容,然后使用重置visibility:visible的样式声明抛出一个<noscript>区域
这样就绝对不会有FOUC,而且如果启用了JS,它们也不会有问题。
发布于 2010-11-20 00:12:56
您可以使用Cufon的内置函数
Cufon.now();因此,在替换文本时不会出现闪烁。
发布于 2010-11-20 00:14:47
好主意,这是人们已经做了一段时间的事情。这是2004年的早期版本:http://www.alistapart.com/articles/dynatext/
和一些较新的
https://stackoverflow.com/questions/4226875
复制相似问题