1

jQuery Cycle Advanced Demos pageの右下の例を見てください。

ギャラリーをループすると、次の画像が常に前の画像を覆っている他の画像とは対照的に、次の画像が最後の画像の下に表示されることに注意してください。まあ、少なくとも Firefox 3.6.3 では。

同じ問題がある jQuery サイクルでカスタム アニメーションを開発しています。ループすると、次の画像はオーバーではなくアンダーになります。

これは、私が渡す設定オブジェクトですcycle()

{
  fx: 'custom',
  timeout: 5000,
  easing: 'easeInOutQuad',
  pause: 1,
  cssFirst: {
       zIndex: 0
  },
  cssBefore: {
       display: 'block',
       top: -500,
       opacity: 1,
       zIndex: 1
  },
  animIn: {
       top: 0,    
       opacity: 1
  },
  animOut: {
       opacity: .2    
  },
  cssAfter: {
       display: 'none',
       opacity: .2,
       zIndex: 0
  },
  delay: -1000

}

cover基本的に、アニメーションはfxと同じですが、次の画像が上に来ると前の画像がフェードアウトする必要があります。

前のスライドをカバーするためにループするときに次のスライドを取得する方法はありますか?

ありがとう

4

1 に答える 1

0

私はハッキーなアプローチを取りましたが、うまくいきます...

$headerImage.find('#gallery ul').cycle({
            fx: 'custom',
            timeout: 5000,
            easing: 'easeInOutQuad',
            pause: 1,
            cssFirst: {
                 zIndex: 1
            },
            cssBefore: {
                 display: 'block',
                 top: -400,
                 left: 0,
                 opacity: 1,
                 zIndex: 1
            },
            animIn: {
                 top: 0,    
                 opacity: 1
            },
            animOut: {
                 opacity: .2    
            },
            cssAfter: {
                 display: 'none',
                 opacity: .2,
                 zIndex: 0
            },
            delay: -1000,
            after: function(current, next) {

             // Had problems when it was looping that the new one wasn't covering the previous one. This hack fixes that.
         if (next == $headerImage.find('li:last')[0]) {
             $headerImage.find('li:last').css({ zIndex: -100 });
         };


            }

        });
于 2010-05-31T02:03:58.883 に答える