0

これは私が現在持っているものです:

// #content is visibility=hidden
sIFR.replace(mix_bold, {
  selector: '#content p',
  onReplacement: function(fi) {
    $('#content').fadeIn("slow");
  }
});

フェードインが発生しますが、一瞬の間、置き換えられたフラッシュムービーが非表示になる前に表示されます。誰かがこれを機能させましたか?jQuery1.2.6とsIFR3r436を使用しています。Safari4およびFF3でテスト済み。

ありがとう!

4

4 に答える 4

1

これではsIFRに関する質問に答えられないことはわかっていますが、Cufonと呼ばれる別のフォント置換手法を使用してフェードインをテストしました。ここではすべてがうまく機能し、要素のCSSでdisplayをnoneに設定して(理想的ではなく、テストのためだけに)、jQueryをフェードインさせます。

Cufonは、「キャンバスとVMLによる高速テキスト置換-Flashや画像は必要ありません」です。

Cufonフォントジェネレータ

それがお役に立てば幸いです。このツールを見つけた後、フォントの置換にsIFRを使用するのをやめました。まだ解決すべき問題がいくつかありますが、見栄えはとても良いです。

詳細はこちらhttps://github.com/sorccu/cufon/wiki

于 2009-06-05T11:23:46.140 に答える
1

そのようなアイテムのリストがある場合、SIFRはこれを置き換えます:

<ul class="slogan-list">
<li>...</li>
</ul>

JQueryは次のようになります。

var jQu = jQuery.noConflict();

jQu('ul.slogan-list').each(function(){
        var _hold = jQu(this);
        var _list = _hold.children();
        var _t, _f = true;
        var _a = (_list.index(_list.filter('.active:eq(0)') != -1))?(_list.index(_list.filter('.active:eq(0)'))):(0);
        _list.removeClass('active').css('opacity', 0).eq(_a).addClass('active').css('opacity', 1);
        if(_f && stay_time){
            _t = setTimeout(function(){
                if(_a < _list.length - 1) changeEl(_a + 1);
                else changeEl(0);
            }, stay_time);
        }
        function changeEl(_ind){
            if(_t) clearTimeout(_t);
            if(_ind != _a){
                _hold.stop().height(_hold.height());
                if(jQu.browser.opera){
                    _list.eq(_a).removeClass('active').css('opacity', 0);
                    _list.eq(_ind).addClass('active').css('opacity', 1);
                }
                else{
                    _list.eq(_a).removeClass('active').animate({opacity: 0}, {queue:false, duration: change_speed});
                    _list.eq(_ind).addClass('active').animate({opacity: 1}, {queue:false, duration: change_speed});
                }
                _hold.animate({height: _list.eq(_ind).outerHeight()}, change_speed/2, function(){ jQu(this).height('auto');});
                _a = _ind;
            }
            if(_f && stay_time){
                _t = setTimeout(function(){
                    if(_a < _list.length - 1) changeEl(_a + 1);
                    else changeEl(0);
                }, stay_time+change_speed);
            }
        }
    });
于 2010-05-12T19:23:01.930 に答える
0

Flashムービーを透明にすると役立つかもしれませんが、一般的には、これは機能しないと思います。FlashとHTML/CSSの難しさ。

于 2009-06-07T20:09:07.197 に答える
0

作ってみてください

#content {
style=display:none
} 

それ以外のvisibility=hidden

于 2009-06-08T14:21:39.603 に答える