能否在HTML文件中实现Base64图片的循环动画效果?
实现Base64图片循环切换动画
当然可以实现,下面提供两种简单可行的方案:
方案一:纯CSS动画
把三张图片重叠放在同一个容器中,通过CSS关键帧动画控制每张图的显示/隐藏状态,循环播放即可。
<div class="image-slider"> <img src="data:image/png;base64, iVBOR...SuQmCC" alt="图1"> <img src="data:image/png;base64, [第二张Base64编码]" alt="图2"> <img src="data:image/png;base64, [第三张Base64编码]" alt="图3"> </div> <style> .image-slider { position: relative; width: [你的图片宽度]; height: [你的图片高度]; } .image-slider img { position: absolute; top: 0; left: 0; width: 100%; height: 100%; opacity: 0; animation: slide 0.3s infinite; } /* 分别设置每张图的动画延迟,实现依次显示 */ .image-slider img:nth-child(1) { animation-delay: 0s; } .image-slider img:nth-child(2) { animation-delay: 0.1s; } .image-slider img:nth-child(3) { animation-delay: 0.2s; } @keyframes slide { 0% { opacity: 0; } 33.33% { opacity: 1; } /* 每张图占动画时长的1/3 */ 100% { opacity: 0; } } </style>
说明:动画总时长设为0.3s(3张×0.1秒),通过animation-delay让每张图依次触发显示,@keyframes里控制透明度切换,实现循环播放。
方案二:JavaScript控制
通过定时器定时切换<img>元素的src属性,循环遍历三张Base64地址。
<img id="animated-img" src="data:image/png;base64, iVBOR...SuQmCC" alt="循环动画"> <script> const imgUrls = [ "data:image/png;base64, iVBOR...SuQmCC", "data:image/png;base64, [第二张Base64编码]", "data:image/png;base64, [第三张Base64编码]" ]; let currentIndex = 0; const imgElement = document.getElementById('animated-img'); setInterval(() => { currentIndex = (currentIndex + 1) % imgUrls.length; imgElement.src = imgUrls[currentIndex]; }, 100); // 100毫秒=0.1秒 </script>
说明:用setInterval每0.1秒切换一次图片地址,通过取余运算实现循环遍历数组中的Base64地址。
内容的提问来源于stack exchange,提问作者Erel Segal-Halevi
相关产品推荐
相关产品推荐

