2010-11-12 65 views
3

我正在使用cufon和jCarousel。JCarousel和Cufon不合作:动画使cufon消失

旋转木马中有5个项目,并从右向左旋转 - 换句话说,它们从屏幕向左移动。你可以在这里看到它。

http://www.foursquare.org/site/test

如果我离开默认行为的旋转木马,它就会到5幻灯片,然后向后滑动到右侧快,一切都显示正常。

如果我将传送带设置为'圆形',cufon标题会在第一次旋转后消失;即当第一张幻灯片被追加到最后一张幻灯片的右侧时,它们不会与幻灯片的其余部分一起出现。

你知道我能做些什么来让jCarousel和Cufon进行合作或交流,使头条在这种情况下不会消失吗?

TTFN 特拉维斯

回答

0

我最终什么事做了,每次转盘移动到下一个项目,我叫Cufon.replace功能,使其重新呈现为相关文本的Cufón。

I.E.

$(document).ready(function(){ 
    $j('.jcarousel-prev').click(function(e){ 
    Cufon.replace('li.jcarousel-item h3'); 
    }); 
    $j('.jcarousel-next').click(function(e){ 
    Cufon.replace('li.jcarousel-item h3'); 
    }); 
}); 

不过,我有我自己的问题的jCarousel在IE中它似乎加倍写上,我用上面的jQuery代码或不隐藏旋转木马项目的Cufón。 如果有人遇到并解决了这个问题,这将是非常有帮助的。如果我事先找到修复的话,我会在这里发帖:)

+0

我一直是这样自己挣扎。我一直在尝试大量疯狂的解决方法(比如在替换之前移除所有Cufon元素),但我仍然会获得倍增效果。有趣的是,你说它发生在隐藏的物品上 - 我认为这是创造新元素的症状,但这更有意义。我会回报我应该找到什么有趣的东西 – electblake 2010-12-07 19:20:33

+0

不,我在关于隐藏元素的评论中错了。你是正确的,它只在你创建新元素时才会起作用。不幸的是,由于我一直无法找到它的修复,我必须改变jCarousel,以便它不循环,而是停止在左侧或右侧条目的末尾。耻辱,但至少它现在在所有的浏览器中都能正常工作...... – Petet 2010-12-09 14:54:21

1

我遇到了这个问题,它带有一个变形的尾部滑块。什么似乎为我工作,而不是使用

visibility:hidden 

,我用

display:none 

display:block 

透露。

2

如果你有你的jcarousel自动旋转,你需要将Cufon.Refresh()附加到动画函数中。

对于我们的轮播,我们在jcarousel上使用了'itemVisibleOutCallback'参数,并将Cufon.Refresh()附加到'onAfterAnimation'调用中。

下面是一个例子:

jQuery('#myCarousel').jcarousel({ 
     scroll: 1, 
     wrap: 'circular', 
     animation: 1500, 
     auto: 7, 
     itemVisibleOutCallback: { 
      onBeforeAnimation: carouselAnimateStart 
     } 
    }); 

function carouselAnimateStart(){ 
    Cufon.refresh(); 
} 

亚历

0

在的jCarousel 精简版我使用下面的代码:

beforeStart: function() { 

    Cufon.refresh(); 

}, 
afterEnd: function() { 

    Cufon.refresh();    

} 

似乎是现在的工作一种享受 - 但我尚未,只在Mac上的Firefox中进行测试。感谢您的帖子。它帮助我,我希望这可以帮助别人。

干杯, Michael。

0

亚历克斯有一个好主意,但你不能刷新你在每个itemVisibleOutCallback所有cufon对象。 这会给你什么是一个slooooowdown。

再次想一想,当你点击“下一步”按钮并且Cufon刷新页面加载时已经转化的每一个元素 - 那么一些浏览器可能会遇到问题。

所以正确的解决办法是只替换特定的元素,你可以做这样的:

$("#carousel").jcarousel({ 
    itemVisibleOutCallback: { 
     onBeforeAnimation: function() { 
      Cufon.replace("#carousel h2, #carousel li > div > a", {fontFamily: 'YourFont', hover: true}); 
     } 
    } 
});