2010-11-12 28 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}); 
     } 
    } 
});