jQuery - jCarousel - FadeIn

时间:2009-08-14 21:06:12

标签: jquery jcarousel

我正在使用插件jCarousel(http://sorgalla.com/projects/jcarousel/)而不是图片滑入(就像“带自动滚动的Carousel”演示一样)

我希望这些图片能够淡入。用法是一个自动滚动的jCarousel,一次只显示一个元素。但我查看了Cycle插件,但它似乎不适用于我的场景,因为我要显示的元素包含文本和图像。

感谢任何人都可以提供帮助。

菲尔

6 个答案:

答案 0 :(得分:6)

即使jCarousel只知道滚动幻灯片,您也可以模拟淡入淡出效果:

$('#yourContainer').jcarousel({
    visible: 1,
    scroll: 1, 
    itemLoadCallback: {
        onBeforeAnimation: mycarousel_fadeOut,
        onAfterAnimation: mycarousel_fadeIn
    }
});

function mycarousel_fadeOut(carousel) {
    var JCcontainerID = carousel.clip.context.id;
    $('#' + JCcontainerID).fadeOut();
}

function mycarousel_fadeIn(carousel) {
    var JCcontainerID = carousel.clip.context.id;
    $('#' + JCcontainerID).fadeIn();
}

这样,您可以在滚动动画开始之前淡出容器,并在完成后将其淡入淡出而不会看到除淡化效果之外的任何其他内容。

答案 1 :(得分:6)

试试这个:

var jcarousel = $('#yourContainer');

    jcarousel.jcarousel({
        animation: {
            duration: 0 // make changing image immediately
        }
    });

    // make fadeIn effect
    jcarousel.on('jcarousel:animate', function (event, carousel) {
        $(carousel._element.context).find('li').hide().fadeIn(1000);
    });

答案 2 :(得分:2)

将功能更改为可用,排序(您可能仍会看到滚动):

function mycarousel_fadeOut(carousel) { 
   var JCcontainer = carousel.clip.context; 
   $(JCcontainer).fadeOut(); 
} 

function mycarousel_fadeIn(carousel) { 
   var JCcontainer = carousel.clip.context; 
   $(JCcontainer).fadeIn(); 
} 

答案 3 :(得分:1)

var mycarousel_fadeOut = function(carousel, state) {
    if (state !== "init") {
        $(carousel.clip.context).find('img').fadeOut(800);
    }
};

var mycarousel_fadeIn = function(carousel, state) {
    if (state !== "init") {
        $(carousel.clip.context).find('img').fadeIn(800);
    }
};

答案 4 :(得分:1)

对于0.3.x jCarousel版本,我选择了这个:

   var carousel = $('.jcarousel').jcarousel({
      list        : '.items',
      items       : '.i',
      wrap        : 'both', // for good measure
      animation: {
          duration: 0 // swap slides immediately
      }
   }).jcarouselAutoscroll({
      interval: 1000 * 5,
      target: '+=1',
      autostart: true
   });

   // fade hack
   carousel.jcarousel('items').hide();
   carousel.jcarousel('first').show();
   carousel.on('jcarousel:visiblein', function(event, carousel) {
      $(event.target).fadeIn();
   });
   carousel.on('jcarousel:visibleout', function(event, carousel) {
      $(event.target).fadeOut();
      carousel._trigger('animateend'); // the event doesn't fire when items are positioned absolutely (so autoscroll wouldn't work), fire manually
   });

使css能够正常工作:

   .items {height: 450px;}
   .i     {position: absolute;}

答案 5 :(得分:0)

Cycle插件可以处理文本和图像。向下滚动到Callbacks部分on this page,查看Cycle with text。