0

这是我目前拥有的:

// #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 中测试。

谢谢!

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 回答