首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

交叉淡入淡出2个元素以创建不带js的循环动画

交叉淡入淡出是一种常见的动画效果,用于在网页或应用程序中创建平滑的过渡效果。它通常用于图片轮播、幻灯片展示或页面切换等场景。

交叉淡入淡出动画的实现方式有多种,其中一种常见的方法是使用CSS3的过渡(transition)属性和关键帧动画(keyframes)。通过设置元素的透明度(opacity)属性和过渡时间(transition-duration),可以实现元素的淡入淡出效果。

以下是一个示例代码,演示了如何使用CSS实现交叉淡入淡出动画:

HTML代码:

代码语言:txt
复制
<div class="slideshow">
  <img src="image1.jpg" alt="Image 1">
  <img src="image2.jpg" alt="Image 2">
</div>

CSS代码:

代码语言:txt
复制
.slideshow {
  position: relative;
  width: 500px;
  height: 300px;
  overflow: hidden;
}

.slideshow img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  transition: opacity 1s ease-in-out;
}

.slideshow img:first-child {
  opacity: 1;
}

@keyframes fade {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

.slideshow img.fade-in {
  animation: fade 1s ease-in-out;
  opacity: 1;
}

.slideshow img.fade-out {
  animation: fade 1s ease-in-out reverse;
  opacity: 0;
}

JavaScript代码:

代码语言:txt
复制
function crossFade() {
  var images = document.querySelectorAll('.slideshow img');
  var currentImage = document.querySelector('.slideshow img.fade-in');
  var nextImage = currentImage.nextElementSibling || images[0];

  currentImage.classList.remove('fade-in');
  currentImage.classList.add('fade-out');
  nextImage.classList.add('fade-in');
}

setInterval(crossFade, 3000);

在上述代码中,通过设置.slideshow容器的宽度和高度,以及设置图片的绝对定位,实现了图片的叠加效果。初始状态下,第一张图片的透明度为1,其余图片的透明度为0。通过CSS的过渡属性和关键帧动画,实现了图片的淡入淡出效果。

JavaScript部分定义了一个crossFade函数,用于切换图片的显示状态。通过setInterval函数定时调用crossFade函数,实现了循环播放的效果。

推荐的腾讯云相关产品:腾讯云对象存储(COS),提供了高可靠、低成本的云端存储服务,适用于存储和管理各种类型的媒体文件。产品介绍链接地址:https://cloud.tencent.com/product/cos

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券