JCarousel 和 Cufon 不合作:动画让 cufon 消失

发布于 2024-10-01 12:14:14 字数 412 浏览 7 评论 0原文

我将 cufon 与 jCarousel 一起使用。

轮播中有五个项目,并从右向左旋转——换句话说,它们从屏幕向左旋转。你可以在这里看到它。

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

如果我将轮播保留为默认行为,到了第5张幻灯片,然后快速向右滑回,一切正常显示。

如果我将轮播设置为“圆形”,则 cufon 标题会在第一次旋转后消失;即,当第一张幻灯片附加到最后一张幻灯片的右侧时,它们不会随幻灯片的其余部分一起提供。

你知道我能做些什么来让 jCarousel 和 Cufon 合作或沟通,这样头条新闻就不会在这种情况下消失吗?

TTFN 特拉维斯

I'm using cufon with jCarousel.

The Carousel has five items in it and rotates right to left -- they go off the screen to the left, in other words. You can see it here.

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

If I leave the carousel on default behavior, it gets to the 5th slide and then slides back to the right fast, and everything displays properly.

If I set the carousel to 'circular', the cufon headlines disappear after the first rotation; i.e. they don't come with the rest of the slide when the first slide gets appended to the right of the last slide.

Do you know what I can do to get jCarousel and Cufon to co-operate or communicate so that the headlines don't disappear in this situation?

TTFN
Travis

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

梦旅人picnic 2024-10-08 12:14:14

如果您的 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();
}

亚历克斯

If you have your jcarousel rotating automatically you need to attach the Cufon.Refresh() to an animation function.

For our carousel we used the 'itemVisibleOutCallback' parameter on jcarousel and attached the Cufon.Refresh() to the 'onAfterAnimation' call.

Here's an example:

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

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

Alex

じ违心 2024-10-08 12:14:14

我在使用 coda-slider 的变体时遇到了这个问题。什么似乎对我有用,而不是使用

visibility:hidden

我使用

display:none

display:block 

来揭示。

I ran into this problem with a variation of coda-slider. What seemed to work for me, instead of using

visibility:hidden

I used

display:none

and

display:block 

to reveal.

原来是傀儡 2024-10-08 12:14:14

我最终做的是每次轮播移动到下一个项目时,我都会调用 Cufon.replace 函数,以便它重新呈现相关文本的 cufon。

IE

$(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');
  });
});

但是,我在 IE 中使用 jCarousel 时遇到了自己的问题,在我使用或不使用上述 jQuery 代码的情况下,它似乎在隐藏的轮播项目上双重写入了 cufon。
如果有人遇到并解决这个问题,那将非常有帮助。如果我事先找到修复程序,我会在这里发布:)

What I ended up doing was everytime carousel moved to the next item, I called the Cufon.replace function so that it re-renders the cufon for the relevant text.

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

However, I have my own problem with jCarousel in IE where it seems to double write the cufon on hidden carousel items where I use the above jQuery code or not.
If anyone comes across and fixes this issue, it would be very helpful. If I find the fix beforehand, I will post on here :)

一曲琵琶半遮面シ 2024-10-08 12:14:14

在 jCarousel lite 中,我使用以下代码:

beforeStart: function() {

    Cufon.refresh();

},
afterEnd: function() {

    Cufon.refresh();            

}

现在似乎可以正常工作 - 但到目前为止,我只在 Mac 上的 Firefox 中进行了测试。不过还是谢谢你的帖子。它帮助了我,我希望这也能帮助其他人。

干杯,
迈克尔.

In jCarousel lite I use the following code:

beforeStart: function() {

    Cufon.refresh();

},
afterEnd: function() {

    Cufon.refresh();            

}

Seems to work a treat now - but I have as yet, only tested in Firefox on a Mac. Thanks for your post though. It helped me out and I hope this helps someone else out.

Cheers,
Michael.

白色秋天 2024-10-08 12:14:14

Alex 有一个好主意,但您无法在每个 itemVisibleOutCallback 上刷新所有 cufon 对象。
这会给你带来的是放慢速度。

再想一想,当您单击“下一步”按钮并且 Cufon 刷新了页面加载时已转换的每个元素时 - 那么某些浏览器可能会出现问题。

因此,正确的解决方案是仅替换特定元素,您可以这样做:

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

Alex had a good Idea but You cant refresh your all cufon objects at every itemVisibleOutCallback.
What this will give You is a slooooowdown.

Think again, when you click "next" button and Cufon refreshed every single element that has transformed on page load - then some browsers might have problem with that.

So the proper solution is to replace specific elements only, you can do it like this:

$("#carousel").jcarousel({
    itemVisibleOutCallback: {
        onBeforeAnimation: function() {
            Cufon.replace("#carousel h2, #carousel li > div > a", {fontFamily: 'YourFont', hover: true});
        }
    }
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文