【发布时间】:2018-11-27 11:27:58
【问题描述】:
我最近在玩一些 Javascript - 我正在尝试只使用 Vanilla Javascript 而没有像 jQuery 这样的库来创建一个小幻灯片 - 事实上在这个小项目中我想学习如何在真实网站中使用和实现它.
这是我的 HTML 标记:
<body onload="changeImage()">
<div class="logo">
<img src="logo.png" class="logo_image" id="imageholder"/>
</div>
我的想法是使用一个带有 img 标签的 HTML div 容器——在 Javascript 程序的每次迭代中,图像都会淡出,改变它的源,然后它会用新的图像淡入 - 等等。在这一点上,我创建了一个糟糕的解决方案,它只将这个想法结合在一起:
function changeImage()
{
var imgArray = new Array();
imgArray[0] = "logo.png";
imgArray[1] = "logo2.png";
imgArray[2] = "logo3.png";
imgArray[3] = "logo4.png";
imgArray[4] = "logo5.png";
var i = 0;
var container = document.getElementById("imageholder");
setInterval(() => {
if(i == 5)
{
i = 0;
}
fadeout(container);
container.src = imgArray[i];
fadein(container);
i++;
}, 2500)
}
function fadeout(container)
{
var op = 1;
var timer = setInterval(() => {
if (op <= 0.0)
{
clearInterval(timer);
}
container.style.opacity = op;
op -=0.1;
}, 1);
}
function fadein(container)
{
var op = 0.0;
var timer = setInterval(() => {
if (op >= 1)
{
clearInterval(timer)
}
container.style.opacity = op;
op += 0.1;
}, 100)
}
我的幻灯片不是流畅地播放,而是首先闪烁新图像,然后逐渐淡入。我知道我应该优化它,但是如何优化呢?
我知道有更好的解决方案,但到目前为止,我未能找到任何适合我的想法的解决方案。
【问题讨论】:
标签: javascript html image fading