如何更改每张随机图像以平滑淡入下一张图像?

科克

我没有运气就尝试了几种不同的方法。我希望当前图像慢慢淡出并淡入下一张图像。

的HTML

<div class="TestRotator " , style="text-align: center; padding-top: 20px; padding-bottom: 50px;">
                <img
                  src="/Users/loh/Documents/app1/images/0.png"
                  ,
                  height="130"
                  id="rotator"
                  ,
                  class="img-fluid, rounded image-hover"
                  alt="Responsive image"
                />
              </div>
              <script src="js_src/imagechanger.js"></script>

JS

(function () {
  var rotator = document.getElementById("rotator"); // change to match image ID        
  var imageDir =
    "/Users/loh/Documents/app1/images/";
  var delayInSeconds = 3;
  var num = 0;
  let currentIndex = 0;
  const totalImages = 16;
  const  changeImage = function () {
    var incre = Math.floor(Math.random() * (totalImages-1) ) + 1;
    num += incre;
    num = num % totalImages;
    rotator.src = imageDir  + num + ".png";
    
  };
  setInterval(changeImage, delayInSeconds * 1000);
})();
达迪比特

我使用的技巧是使用背景图像而不是真实图像。这允许使用一些简单的CSS为所有内容设置动画。对于仅JS解决方案,我建议使用jQuery。

<html>
<head>
    <style>
        #view {
            background-image: url("/pictures/0.png");
            transition: background-image 1s;
            background-repeat: no-repeat;
            width: 100%;
            height: 100%;
        }
    </style>
</head>
<body>
    <div id="view"></div>
    <script>
        const view = document.getElementById("view");     
        const imageDir = "/pictures/";
        const delayInSeconds = 2; //more then #view transition timing
        const totalImages = 4; //0.png; 1.png; ...; 4.png;
        var i = 0;
        const  changeImage = () => {
            i += Math.floor(Math.random() * (totalImages-1) ) + 1;;
            i %= totalImages;
            view.style["background-image"] = `url(${imageDir}${i}.png)`;
        };
        changeImage(); //call immediately without having to wait for delayInSeconds
        setInterval(changeImage, delayInSeconds * 1000);
    </script>
</body>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

超时后如何更改下一张图像

如何影响图像悬停时的上一张和下一张图像

多次更改一张图像的边框

选择第一张图像,而不是随机图像

从图库中获取下一张图像和上一张图像

单击另一张图像时如何隐藏另一张图像顶部的图像

在弹出菜单Div中加载下一张图像

更改为另一张图像时如何固定图像尺寸?

如何通过淡入/淡出平滑地更改图像源?

如何在imgaug中为一张图像应用多个旋转值?(不是随机的)

如何隐藏多张图像并仅显示一张图像?

无法显示图像 unorderlist 中的下一张和上一张所有图像

如何在代马家滑块中显示下一张图像的一部分?

具有一个类别的图像的多个div框。一次只淡入一张图像?

如何删除第一张和最后一张图像的左右空间?

一张一张地打印图像

使用一张图像阈值另一张

如何将几张图像合并为一张?

您如何从图像中裁剪出一张脸?

如何使用TensorFlow从MNIST获得一张图像的预测?

如何用一张图像预测训练好的模型?

如何在单页上的10张图像中仅旋转一张图像

如何在一张纸上打印四张单张图像,每个角各一张?

一张一张一张地滑动图像

(相机校准)如何让我的循环读取图像仅等待 10 秒,如果没有任何内容则移至下一张图像?

当单击按钮时显示目录中的下一张图像

每张幻灯片如何显示2张图像?

当到达最后一张图像时,如何在视图寻呼机中自动更改图像,它应该自动到达第一张图像

禁用图像滑块Javascript中最后一张图像中的下一个按钮