3

我下载了 jquery 效果示例,所有效果都只出现在 onclick 但我希望它在 document.ready() 上执行并继续...

<script type="text/javascript">
 var ImgIdx = 2;//To mark which image will be select next

 function PreloadImg(){
  $.ImagePreload("images/im2.jpg");
  $.ImagePreload("images/im3.jpg");
  $.ImagePreload("images/im4.jpg");
  $.ImagePreload("images/im5.jpg");
 }
 $(document).ready(function(){
  PreloadImg();
  $(".SlashEff ul li").click(function(){
  $(".Slash").ImageSwitch({Type:$(this).attr("rel"),      NewImage:"images/im"+ImgIdx+".jpg", speed: 4000
          });
   ImgIdx++;
   if(ImgIdx>5) ImgIdx = 1;
  });  
 });
</script>

和我的

<div class="SlashEff">
 <ul>
 <li class="TryFadeIn" rel="FadeIn">Fade in</li>
  <li class="TryFlyIn"  rel="FlyIn">Fly in</li>
 <li class="TryFlyOut"  rel="FlyOut">Fly out</li>
 <li class="TryFlipIn"  rel="FlipIn">Flip in</li>
 <li class="TryFlipOut"  rel="FlipOut">Flip out</li>    
 <li class="TryScroll"  rel="ScrollIn">Scroll in</li>
 <li class="TryScroll"  rel="ScrollOut">Scroll out</li>
 <li class="TrySingleDoor" rel="SingleDoor">Single Door</li>
 <li class="TryDoubleDoor" rel="DoubleDoor">Double Door</li>
</ul>  
</div>

这是链接http://www.hieu.co.uk/blog/index.php/imageswitch/

我试过这个,

$(document).ready(function(){
  PreloadImg();
    $(".Slash").ImageSwitch({Type:$(this).attr("rel"), 
           NewImage:"images/im"+ImgIdx+".jpg", speed: 4000
          });
   ImgIdx++;
   if(ImgIdx>5) ImgIdx = 1;
 });

我试过了,但它只执行一次……我想每次执行一次5000ms……这可能吗……

4

2 回答 2

4

您可以使用 setInterval 来实现重复:

function swap() {
  $(".Slash").ImageSwitch({Type:$(this).attr("rel"), 
    NewImage:"images/im"+ImgIdx+".jpg", speed: 4000
  });
  ImgIdx++;
  if(ImgIdx>5) ImgIdx = 1;
}
$(document).ready(function(){
  PreloadImg();
  setInterval(swap, 5000);
});
于 2010-05-03T11:05:33.840 回答
0
$(document).ready(function() {
  PreloadImg();
  setTimeout(doEffect, 5000);
});

function doEffect() {
  $(".Slash").ImageSwitch({Type:$(this).attr("rel"), 
    NewImage:"images/im"+ImgIdx+".jpg", speed: 4000
  });
  ImgIdx++;
  if(ImgIdx>5) ImgIdx = 1;
}
于 2010-05-03T11:05:01.677 回答