首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在PHP中运行Cufon

在PHP中运行Cufon
EN

Stack Overflow用户
提问于 2010-11-20 00:08:43
回答 4查看 1.3K关注 0票数 0

是否可以在PHP中运行Cufon文本替换脚本(或在将其发送到浏览器之前)?我问的原因是,在Cufon能够在它上面画出它的魔力之前,显示的HTML是它的正常浏览器呈现的文本,这是一个小问题。用户在被Cufon的awesomeness替换之前会看到一个未渲染的文本(FOUT)。我注意到呈现的HTML生成了一些标记来代替HTML (canvas和Cufon标记)文本,我想,如果这可以在PHP中完成,然后发送到浏览器,以便浏览器从一开始就实际接收绘制的文本,会怎么样?这是否意味着要移植将文本绘制到PHP的代码?这是一个天才的举动,或者更有可能是愚蠢的,昨晚,我想知道是否有人对这个问题有一些想法。感谢您的阅读。

代码语言:javascript
复制
 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:

代码语言:javascript
复制
<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是这样的:

代码语言:javascript
复制
<a href="/mp_svn/node/5">Products</a>
EN

回答 4

Stack Overflow用户

发布于 2011-03-01 10:06:22

Cufon有一个在所有文本都被替换后运行的回调函数:http://groups.google.com/group/cufon/browse_thread/thread/20a8d2edd45f1aa5/1a498d21856405cd

你可以选择

  1. 最初使用CSS隐藏内容,然后在回调中使用javascript显示它,并且绝对要确保不会出错--但是如果没有JS
  2. ,用户将完全无法访问您的页面,或者,当DOM准备就绪时,使用JS隐藏内容,然后在文本替换发生后再次显示它。使用jQuery,

$(文档).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,它们也不会有问题。

票数 1
EN

Stack Overflow用户

发布于 2010-11-20 00:12:56

您可以使用Cufon的内置函数

代码语言:javascript
复制
Cufon.now();

因此,在替换文本时不会出现闪烁。

票数 0
EN

Stack Overflow用户

发布于 2010-11-20 00:14:47

好主意,这是人们已经做了一段时间的事情。这是2004年的早期版本:http://www.alistapart.com/articles/dynatext/

和一些较新的

  • http://artypapers.com/csshelppile/pcdtr/
  • http://www.joaomak.net/util/dtr/
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4226875

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档