jQuery Image Crossfade无法正常工作

时间:2016-09-12 19:02:07

标签: javascript jquery image cycle cross-fade

你好我们的jQuery图像交叉淡入淡出设置有什么问题!? http://tips.techmatemn.com/

HTML

<div class="hero-cycler">
    <img class="active" alt="Tips qualified Client 1" src="<?php bloginfo('stylesheet_directory'); ?>/assets/img/hero-bk-1.jpg">
    <img alt="Tips qualified Client 2" src="<?php bloginfo('stylesheet_directory'); ?>/assets/img/hero-bk-2.jpg">
</div>

CSS

.hero-cycler{position:relative;}
.hero-cycler img{position:absolute;z-index:1}
.hero-cycler img.active{z-index:3}

SCRIPT

<script> // homepage client images
function cycleImages(){
      var $active = $('.hero-cycler .active');
      var $next = ($active.next().length > 0) ? $active.next() : $('.hero-cycler img:first');
      $next.css('z-index',2);//move the next image up the pile
      $active.fadeOut(1500,function(){//fade out the top image
      $active.css('z-index',1).show().removeClass('active');//reset the z-index and unhide the image
          $next.css('z-index',3).addClass('active');//make the next image the top one
      });
    }

$(document).ready(function(){
// run every 7s
setInterval('cycleImages()', 7000);
})
</script>

谢谢!

1 个答案:

答案 0 :(得分:0)

更改您调用该功能的方式。您的setInterval使用折旧且通常不推荐的字符串参数。使用下面显示的标准方法正确运行该功能。

setInterval('cycleImages()', 7000);更改为setInterval(cycleImages, 7000);

带有通用填充图像的完整工作副本:

function cycleImages() {
  var $active = $('.hero-cycler .active');
  var $next = ($active.next().length > 0) ? $active.next() : $('.hero-cycler img:first');
  $next.css('z-index', 2); //move the next image up the pile
  $active.fadeOut(1500, function() { //fade out the top image
    $active.css('z-index', 1).show().removeClass('active'); //reset the z-index and unhide the image
    $next.css('z-index', 3).addClass('active'); //make the next image the top one
  });
}

$(document).ready(function() {
  // run every 7s
  setInterval(cycleImages, 7000);
})
.hero-cycler {
  position: relative;
}
.hero-cycler img {
  position: absolute;
  z-index: 1
}
.hero-cycler img.active {
  z-index: 3
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="hero-cycler">
  <img class="active" alt="Tips qualified Client 1" src="https://unsplash.it/300/200/?image=0">
  <img alt="Tips qualified Client 2" src="https://unsplash.it/300/200/?image=1">
</div>

(快速检查浏览器控制台会向您显示错误:Uncaught ReferenceError: cycleImages is not defined,这对您的问题非常有帮助)