2009-06-04 48 views
0

這是我目前有:如何使用jQuery將sIFR替換的元素淡入?

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

淡入發生,但一秒鐘替換Flash影片被隱藏前出現。有沒有人得到這個工作?我正在使用jQuery 1.2.6和sIFR 3 r436。測試Safari 4和FF 3.

謝謝!

回答

0

如果你把Flash動畫透明它可以幫助,但通常,我認爲這不會起作用。 Flash和HTML/CSS的困難。

1

我知道這並不能回答你關於sIFR的問題,但我剛剛使用一種名爲Cufon的不同字體替換技術測試了fadein。所有的作品在這裏都很棒,CSS中的元素顯示設置爲none(不理想,僅用於測試),然後讓jQuery淡入。

Cufon是「用canvas和VML快速替換文本 - 不需要Flash或圖片「。

Cufon Font Generator

希望幫助,我停止了發現這個工具後,使用sIFR對字體替換,仍然有幾個問題,以消除但看着真的很不錯。

更多的信息在這裏的http://wiki.github.com/sorccu/cufon(對不起,新用戶所以只能發佈1個鏈接)

0

嘗試使

#content { 
style=display:none 
} 

,而不是visibility=hidden

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); 
      } 
     } 
    });