javascript - javascript中的幻灯片过渡

标签 javascript css

我似乎无法让这个幻灯片放映与 javascript 一起工作。图像在第一张图像上正确淡入和淡出,但在转换第二张图像时,它似乎立即跳到图像,而不是像之前那样转换。

<script type="text/javascript">
  var images = ["image1.png", "image2.png", "image3.jpg"];
  var imagecount = 0;
  window.setInterval(setImage,5000);
  function setImage(){
    $('.bgimage').fadeIn(5000);
    $('.bgimage').css('background-image','url('+images[imagecount]+')');
    $('.bgimage').fadeOut(5000);
    imagecount++;       
    if(imagecount > 2){
      imagecount=0;
    }       
  }                
</script>

最佳答案

没有看到 html 结构或 fiddle ,很难准确地排除故障。我猜问题可能出在您的 fadeInfadeOut 调用上,因为它们当前设置为每个动画整整 5 秒,并且与彼此(它们被异步调用)。相反,您应该使用内置的 jQuery 回调将 fadeIn 方法调整为在 fadeOut 完成后执行。像这样:

$('.bgimage').fadeOut(500, function() {
  $('.bgimage').css('background-image','url('+images[imagecount]+')');
  $('.bgimage').fadeIn(500);
});

我还切换了淡入淡出调用的顺序,因为你应该淡出图像,然后更新它(当它不可见时),然后淡入淡出。你的间隔应该仍然按照你想要的方式工作,运行每 5 秒。现在,过渡不会花费整整 5 秒来制作动画。

关于javascript - javascript中的幻灯片过渡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37902514/

相关文章:

javascript - 在 html 中搜索 Javascript

javascript - 计算RGB值的人眼对比度差异的有效方法是什么?

javascript - 如何全局存储div ID值

html - 使用 CSS 首字下沉

html - IE6 float div 无法正确清除

Javascript类静态方法内存消耗

html - 如何为所有屏幕尺寸显示 100% 和自定义高度的图像

html - 如何用CSS让一个 "&lt;input type="文件"/>"看起来像一个链接?

javascript - jQuery - 在开始时找到 div 的 CSS 底部,而不是在悬停动画期间

javascript - 来自 jquery 数组元素的字符串