如何让z-index与jQuery插件循环一起玩得很好

时间:2010-05-31 01:40:59

标签: javascript jquery css jquery-cycle z-index

请查看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相同,不同之前的图像会随着下一个图像的显示而逐渐消失。

当它循环覆盖前一张幻灯片时,有没有办法获得下一张幻灯片?

由于

1 个答案:

答案 0 :(得分:0)

我采用了一种hacky方法,但它有效......

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


            }

        });