javascript - 如何使图像变化平滑过渡?

标签 javascript css image vue.js

请帮我通过Js顺利换图。有一个带有图片链接的数组,我对其进行迭代,每隔几秒钟我就更改图片。图片变化非常剧烈,但我需要这种图片变化的过渡是流畅的动画吗?

  setInterval(() => {
    document.getElementById('image').src = '...';
  }, 5000);

UPD

new Vue({
  el: "#app",
  data: {
    count: 0,
    mass: ["https://picsum.photos/id/238/200/300", "https://picsum.photos/id/239/200/300", "https://picsum.photos/id/240/200/300", ]
  },
  mounted() {

    for (let i = 0; i < this.mass.length; i++) {
      setTimeout(() => {
        document.getElementById('image').src = this.mass[i]
      }, 1000);
    }
  },
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<div id="app">
  <img src="https://picsum.photos/id/237/200/300" id="image" />
</div>

最佳答案

new Vue({
      el: "#app",
      data: {
        count: 0,
        mass: ["https://picsum.photos/id/238/200/300", "https://picsum.photos/id/239/200/300", "https://picsum.photos/id/240/200/300", ]
      },
      mounted() {

          let i=0;
          setInterval(() => {
          i = (i+1) % this.mass.length;
           fadeIn(document.getElementById('image'), 1000); 
            document.getElementById('image').src = this.mass[i];    
          }, 4000);
      },
    })
    
    
function fadeIn(el, time) {
  el.style.opacity = 0;

  var last = +new Date();
  var tick = function() {
    el.style.opacity = +el.style.opacity + (new Date() - last) / time;
    last = +new Date();

    if (+el.style.opacity < 1) {
      (window.requestAnimationFrame && requestAnimationFrame(tick)) || setTimeout(tick, 16);
    }
  };

  tick();
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
    <div id="app">
    <transition name="fade">
      <img src="https://picsum.photos/id/237/200/300" id="image" />
      </transition>
    </div>

关于javascript - 如何使图像变化平滑过渡?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59243771/

相关文章:

javascript - 除非我使用超时,否则 CSS 转换不起作用

java - 可缩放图片 - Android

java - 将 Image 对象转换为 FormFile 对象

javascript - 替换 JSON 编码的 feed 值的图像 src 协议(protocol) http : with https:

javascript - 在另一个 HTML 元素中将标题属性显示为字符串

javascript - jQuery resizable() 动态 maxWidth 选项

jquery - 附加后实时绑定(bind)不起作用

html - 如何使 div 高度在每个浏览器上兼容

c# - 如何检查两个图像是否相同

javascript - 带有两个括号和两个参数的 JS 函数