3

プラグインjCarousel(http://sorgalla.com/projects/jcarousel/)を使用しており、画像がスライドインするのではなく(「自動スクロール付きカルーセル」デモのように)

画像をフェードインさせたいのですが。使用法は、自動スクロールして一度に1つの要素のみを表示するjCarouselです。しかし、Cycleプラグインを調べましたが、表示したい要素にテキストと画像が含まれているため、シナリオでは機能しないようです。

誰かがこれを手伝ってくれるならありがとう。

フィル

4

6 に答える 6

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);
    });
于 2013-11-27T13:39:57.930 に答える
6

jCarousel はスライドをスクロールすることしか認識していませんが、フェード効果をシミュレートできます。

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

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

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

このようにして、スクロール アニメーションが始まる前にコンテナーをフェードアウトし、終了後にフェードインするだけで、フェード効果以外は何も表示されません。

于 2011-09-14T15:56:38.997 に答える
2

関数をこれに変更すると、次のようになります (スクロールも表示される場合があります)。

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

function mycarousel_fadeIn(carousel) { 
   var JCcontainer = carousel.clip.context; 
   $(JCcontainer).fadeIn(); 
} 
于 2012-03-16T13:00:31.937 に答える
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;}
于 2014-05-07T09:52:05.873 に答える
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);
    }
};
于 2012-05-28T08:37:25.520 に答える
0

Cycle プラグインは、テキストと画像で動作します。このページの Callbacks セクションまで下にスクロールして、Cycle がテキストを操作していることを確認します。

于 2009-08-15T15:34:34.093 に答える