javascript - img src变化时给图片添加Slidein转场效果?

标签 javascript html css

我在 .HTML 文件中有一个 img 标签,如下所示:

<img id="xyz"/>

在 javascript 中,我有如下代码:

let i = 1;
let images = ["src1", "src2", "src3", "src4", "src5"];

let imgDiv = document.getElementById('xyz');
imgDiv.src = images[0];

setInterval(() => {
    momentDiv.src = images[i];
    i++;
    if(i == images.length) i=0;
}, 5000);

我在 imgDiv 中的图像每 5 秒切换一次。

如何在“src”属性发生变化时为图像提供动画或过渡?

请不要使用 jQuery。

最佳答案

不可能如你所愿。

要制作幻灯片效果,至少需要2张图片。 因此,您需要更新第二张图片的 src 并将此图片移至第一张图片上方。然后你的第二张图片应该成为第一张(你需要将第二张图片的 src 复制到旧图片标签并重复算法)

let i = 1;
let images = ["https://picsum.photos/200/200/?image=663", "https://picsum.photos/200/200/?image=662", "https://picsum.photos/200/200/?image=661", "https://picsum.photos/200/200/?image=660", "https://picsum.photos/200/200/?image=659"];

let imgDiv = document.getElementById('xyz');
let imgSecond = document.getElementById('zyx');

imgDiv.src = images[0];

setInterval(() => {
    imgSecond.src = images[i];
    imgSecond.classList.add('active');
    i++;
    if(i == images.length) i=0;
  
    setTimeout(function() {
      imgDiv.src = imgSecond.src;
      imgSecond.classList.remove('active');
    }, 1500); // the same time as transition animation at css.
}, 2000);
.wrap {
  position: relative;
  overflow: hidden;
  width: 200px;
  height: 200px;
}

.wrap > img {
  position: absolute;
  top: 0;
  left: 0;
}

.wrap > img#zyx {
  top: 200px;
}
.wrap > img#zyx.active {
  top: 0;
  transition: top 1.5s;
}
<div class="wrap">
  <img id="xyz" width="200" height="200"/>
  <img id="zyx" width="200" height="200"/>
</div>

希望对你有帮助。

关于javascript - img src变化时给图片添加Slidein转场效果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48826438/

相关文章:

javascript - 匹配新行不起作用

javascript - 无法在数组中循环数组

javascript - 谷歌动态图表不工作

css - 弹出窗口内的输入字段在聚焦时跳跃

javascript - 我是否需要为 Angular 2 中的每个模块添加一个插件?

javascript - 纯 JavaScript 的 "hasClass"函数是什么?

javascript - 图像两端之间的动画背景滚动

jquery - 调整约束 jQuery .resizable()

javascript - ExpressJS 在 html5 模式上进行更深层次的 url 链接时呈现错误的静态路径

html - Django:无法更新 css 更改