【问题标题】:Trying to make a transition with opacity on images尝试在图像上使用不透明度进行过渡
【发布时间】:2021-02-23 16:38:03
【问题描述】:

就像我的标题所说,我正在尝试在图像上进行不透明度(0 到 1,间隔为 2 秒)的过渡,但我不知道如何实现。

过渡只适用于第一张图像,但不适用于其他图像,我不知道为什么。

所以我希望你能帮助我理解我的错误,我是 javascript 的新手。提前谢谢你,这是我的代码

我的 HTML 文件:

<img src="img/1.jpg" alt="slide-photo">

我的 CSS 文件:

#slideshow-home img {
    width: 100%;
    opacity: 0;
    transition: 1s ease-in-out;
}

我的 JS 文件:

var image = document.querySelector('img');
var img = 1 ;

window.setInterval(changeImage, 2000); 

function changeImage() {
    image.setAttribute('src', 'img/' + img + '.jpg'); 
    image.style.opacity = 1; 
    img++; 
    if(img === 6) { 
        img = 1; 
    }
}

【问题讨论】:

  • 尝试在您的 CSS 中添加 transition: all 1s ease-in-out;transition: opacity 1s ease-in-out;
  • 它也没有改变任何东西......

标签: javascript image transition slideshow opacity


【解决方案1】:

这就是我处理图像淡入淡出过渡的方式,好处是它在图像实际加载之前不会开始,因此淡入淡入时它永远不会断断续续

JS

var image = document.querySelector('img');
var img = 1;

window.setInterval(changeImage,5000); 

function changeImage() {
    image.classList.remove('fadeIn')
    image.src = 'img/'+img+'.jpg'
    img++
    if (img == 6) {
      img = 1;
    } 
}

image.addEventListener('load', () => { // This function looks at the image and every time an image is loaded i.e whenever it gets a new src, it does a fade in animation
  void(image.offsetHeight)
  image.classList.add('fadeIn')
})

CSS

我通常用动画来做到这一点,如下所示

#slideshow-home img {
    width: 100%;
    opacity: 0;
}

@keyframes fadeIn {
  0% {
    opacity: 0;
  }

  100% {
    opacity: 1;
  }
}

.fadeIn {
  animation:fadeIn 2s forwards;
}

【讨论】:

  • 加引号还是不行...
  • 我编辑了答案以显示另一种方法来做你想做的事情,请问它是否不起作用(我使用一些图像进行了测试并且似乎有效)或者如果你有任何问题它是如何工作的
  • 非常感谢您的帮助。但它似乎没有按预期工作。我解释说,过渡有效,但问题是图像在下一张图像之前出现两次。我试图解决,但我还是不明白代码中的问题在哪里..
  • 你能像截图或视频一样显示吗,很难看到发生了什么,因为我没有 img 来运行你喜欢的代码,图像会淡入两次吗?跨度>
  • 我想我无法发送视频...我尝试更好地解释。移动到图像时,淡入淡出效果很好。但是当我们在一个图像上时,所以每当索引时,就像在移动到下一个图像之前会闪烁一样。
猜你喜欢
  • 2021-05-11
  • 2013-05-16
  • 2016-02-04
  • 1970-01-01
  • 1970-01-01
  • 2021-07-26
  • 2014-08-06
  • 2013-09-23
  • 2012-05-28
相关资源
最近更新 更多