Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/239.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP中运行Cufon_Php_Javascript_Html_Cufon - Fatal编程技术网

在PHP中运行Cufon

在PHP中运行Cufon,php,javascript,html,cufon,Php,Javascript,Html,Cufon,是否可以在PHP中运行Cufon文本替换脚本(或在将其发送到浏览器之前)?我问这个问题的原因是,在Cufon能够发挥其魔力之前,所显示的HTML是其正常的浏览器呈现文本,这有点问题。用户看到一个未渲染文本(FOUT)的闪光,然后被Cufon的惊人之处所取代。我注意到呈现的HTML中生成了一些标记来代替HTML(canvas和Cufon标记)文本,我想,如果这可以在PHP中完成,然后发送到浏览器,以便浏览器从一开始就实际接收绘制的文本呢?。这是否意味着移植将文本绘制到PHP的代码?这是昨晚的天才之

是否可以在PHP中运行Cufon文本替换脚本(或在将其发送到浏览器之前)?我问这个问题的原因是,在Cufon能够发挥其魔力之前,所显示的HTML是其正常的浏览器呈现文本,这有点问题。用户看到一个未渲染文本(FOUT)的闪光,然后被Cufon的惊人之处所取代。我注意到呈现的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>

您可以使用Cufon的内置功能

Cufon.now();

因此,在替换文本时没有闪烁

好主意,人们已经做了一段时间了。这是2004年的早期版本:

还有一些新的


Cufon有一个回调函数,在替换所有文本后运行:

你也可以

  • 首先用CSS隐藏内容,然后在回调中用javascript显示内容,并绝对确保没有FOUT——但是没有JS的用户将完全无法访问页面
  • 或者,在DOM就绪时使用JS隐藏内容,然后在文本替换完成后再次显示。使用jQuery

    $(document).ready(function(){
        $('#content').css('visibility', 'hidden');
    
        Cufon.CSS.ready(function() {
            $('#content').css('visibility, 'visible');
        });
    });
    
  • 这对于Firefox/webkit来说应该很好,但是在JS生效之前IE中仍然会有一个FOUC。您还可以使用
    $('#content').fadeTo(0,0)如果你想在内容被Cufon取代后淡入淡出

    编辑
    我想出了一个更好的办法。您可以使用#1方法,使用CSS隐藏内容,但随后会添加一个带有样式声明的
    区域,该声明将重置
    可见性:可见


    这样就绝对不会有FOUC,如果启用JS,它们也不会有问题。

    我在css中将我的可见性设置为false,在Cufon上调用replace函数,并使用onAfterReplace回调将元素设置为visible

    $(document).ready(function(){    
        Cufon.replace('h1', { fontFamily: 'alwyn-thin',      
        onAfterReplace:function(el,options){    
             $(el).css('visibility', 'visible');
    }});
    

    谢谢你,约翰,但我认为这与我正在寻找的解决方案有点不同。我不想使用图像替换等方式来获取文本,因为我正在尽可能地保持所有内容的一致性。我尝试将Cufon.now()添加到上述JS的末尾,但仍然出现了FOUT效果。有更好的地方可以调用它吗?根据API,()它应该放在页面的末尾,但在script标记中的第一个位置,您可以尝试一下吗?尝试了之后仍然得到了FOUT。不过,谢谢你的建议,从医生的角度来看,这应该可以解决问题。我很遗憾听到这不起作用。它一直在为我工作。WeirdI会给你的解决方案一个旋转。非常感谢!
    $(document).ready(function(){    
        Cufon.replace('h1', { fontFamily: 'alwyn-thin',      
        onAfterReplace:function(el,options){    
             $(el).css('visibility', 'visible');
    }});