jquery:fadeIn()和out函数在IE中的工作方式不同

时间:2012-01-30 14:59:54

标签: jquery fade

HTML

  <div class="banner">
    <div style="font-size:35px;" class="bannerloop none">slogan 1</div>
    <div style="font-size:35px;" class="bannerloop none">slogan 2</div>
    <div style="font-size:35px;" class="bannerloop none">slogan 3</div>
    <div style="font-size:35px;" class="bannerlast none">last</div>
  </div>

CSS

.none {
    display: none;
}

JS

  var divs = $('.banner').children('.bannerloop');
  var divscnt = divs.length;
  $(divs).delay(2000).each(function(index) {
    $(this).delay(3000*index).fadeIn(1500).fadeOut(1500, function() {
      if (index = spanscnt - 1) {
        $('.bannerlast').delay(3000*index).fadeIn(1500);
      }
    });
  });

目标:毕竟.bannerloop div是动画的,显示.bannerlast div。

除了IE之外的所有浏览器都可以正常工作 - 它会淡出第一个div然后停止。

2 个答案:

答案 0 :(得分:0)

试试 jsFiddle

var index = 0;

function fadeMe()
{
    $('div.banner div.bannerloop:eq('+index+')').delay(3000*index).fadeIn(1500).fadeOut(1500,function(){
        index++;
        if(index < $('div.banner div.bannerloop').length) {
            fadeMe();
        }
        else {
            $('div.banner div.bannerlast').delay(3000*index).fadeIn(1500);
        }
    });
}

fadeMe();

不是jQuery延迟()函数的忠实粉丝,但我试图复制你所拥有的东西。适用于所有当前浏览器。

答案 1 :(得分:0)

发生编码错误。

if(index = spanscnt - 1){should if if(index = divscnt - 1){