【问题标题】:How to add a class on a div?如何在 div 上添加类?
【发布时间】:2018-01-31 17:34:17
【问题描述】:

我有一些代码来显示一系列图像。序列完成后(序列的最后一张图片已经出现),我希望将 .d-block 类切换到 div.d-none

可以这样做吗?

onload = function startAnimation() { 
    var frames = document.getElementById("animation").children;
    var frameCount = frames.length;
    var i = 0, j = 0;
    var interval = setInterval(function () {
        frames[i % frameCount].style.display = "none";
        frames[++i % frameCount].style.display = "block";
        j++;
        if(j === 14) {
            clearInterval(interval);
        }
    },100); 
}
#animation img {
    display: none;
}
#animation img:first-child {
    display: block;
}
.d-none{
display:none
}
.d-block{
display:block;
}
<div id="animation"> 
    <img src="http://jumpingfishes.com/dancingpurpleunicorns/charging01.png" />
    <img src="http://jumpingfishes.com/dancingpurpleunicorns/charging02.png" />
    <img src="http://jumpingfishes.com/dancingpurpleunicorns/charging03.png" />
    <img src="http://jumpingfishes.com/dancingpurpleunicorns/charging04.png" />
    <img src="http://jumpingfishes.com/dancingpurpleunicorns/charging05.png" />
    <img src="http://jumpingfishes.com/dancingpurpleunicorns/charging06.png" />
    <img src="http://jumpingfishes.com/dancingpurpleunicorns/charging07.png" />
    <img src="http://jumpingfishes.com/dancingpurpleunicorns/charging08.png" />
    <img src="http://jumpingfishes.com/dancingpurpleunicorns/charging09.png" />
    <img src="http://jumpingfishes.com/dancingpurpleunicorns/charging10.png" />
    <img src="http://jumpingfishes.com/dancingpurpleunicorns/charging11.png" />
    <img src="http://jumpingfishes.com/dancingpurpleunicorns/charging12.png" />
    <img src="http://jumpingfishes.com/dancingpurpleunicorns/charging13.png" />
    <img src="http://jumpingfishes.com/dancingpurpleunicorns/charging14.png" />
    <img src="http://jumpingfishes.com/dancingpurpleunicorns/charging15.png" />
</div>
<div class="d-none">
    This should appear once the sequence is completed!
</div>

【问题讨论】:

  • 你想要什么??
  • 当序列到达图像时,第 15 号是显示块而不是在 div 上添加类(d-block)

标签: javascript html css


【解决方案1】:

您可以在clearInterval 之后使用document.getElementsByClassName 切换类。检查下面更新的 sn-p...

onload = function startAnimation() { 
    var frames = document.getElementById("animation").children;
    var frameCount = frames.length;
    var i = 0, j = 0;
    var interval = setInterval(function () {
        frames[i % frameCount].style.display = "none";
        frames[++i % frameCount].style.display = "block";
        j++;
        if(j === 14) {
            clearInterval(interval);
            document.getElementsByClassName("d-none")[0].classList.add('d-block');
            document.getElementsByClassName("d-none")[0].classList.remove('d-none');
        }
    },100); 
}
#animation img {
    display: none;
}
#animation img:first-child {
    display: block;
}
.d-none{
display:none
}
.d-block{
display:block;
}
<div id="animation"> 
    <img src="http://jumpingfishes.com/dancingpurpleunicorns/charging01.png" />
    <img src="http://jumpingfishes.com/dancingpurpleunicorns/charging02.png" />
    <img src="http://jumpingfishes.com/dancingpurpleunicorns/charging03.png" />
    <img src="http://jumpingfishes.com/dancingpurpleunicorns/charging04.png" />
    <img src="http://jumpingfishes.com/dancingpurpleunicorns/charging05.png" />
    <img src="http://jumpingfishes.com/dancingpurpleunicorns/charging06.png" />
    <img src="http://jumpingfishes.com/dancingpurpleunicorns/charging07.png" />
    <img src="http://jumpingfishes.com/dancingpurpleunicorns/charging08.png" />
    <img src="http://jumpingfishes.com/dancingpurpleunicorns/charging09.png" />
    <img src="http://jumpingfishes.com/dancingpurpleunicorns/charging10.png" />
    <img src="http://jumpingfishes.com/dancingpurpleunicorns/charging11.png" />
    <img src="http://jumpingfishes.com/dancingpurpleunicorns/charging12.png" />
    <img src="http://jumpingfishes.com/dancingpurpleunicorns/charging13.png" />
    <img src="http://jumpingfishes.com/dancingpurpleunicorns/charging14.png" />
    <img src="http://jumpingfishes.com/dancingpurpleunicorns/charging15.png" />
</div>
<div class="d-none">
this div is aappear
</div>

【讨论】:

    【解决方案2】:

    你可以改变css:

    onload = function startAnimation() { 
        var frames = document.getElementById("animation").children;
        var frameCount = frames.length;
        var i = 0, j = 0;
        var interval = setInterval(function () {
            frames[i % frameCount].style.display = "none";
            frames[++i % frameCount].style.display = "block";
            j++;
            if(j === 14) {
                clearInterval(interval);
                document.getElementsByClassName("d-none")[0].style.display = "block";
            }
        },100); 
    }
    #animation img {
        display: none;
    }
    #animation img:first-child {
        display: block;
    }
    .d-none{
    display:none
    }
    .d-block{
    display:block;
    <div id="animation"> 
        <img src="http://jumpingfishes.com/dancingpurpleunicorns/charging01.png" />
        <img src="http://jumpingfishes.com/dancingpurpleunicorns/charging02.png" />
        <img src="http://jumpingfishes.com/dancingpurpleunicorns/charging03.png" />
        <img src="http://jumpingfishes.com/dancingpurpleunicorns/charging04.png" />
        <img src="http://jumpingfishes.com/dancingpurpleunicorns/charging05.png" />
        <img src="http://jumpingfishes.com/dancingpurpleunicorns/charging06.png" />
        <img src="http://jumpingfishes.com/dancingpurpleunicorns/charging07.png" />
        <img src="http://jumpingfishes.com/dancingpurpleunicorns/charging08.png" />
        <img src="http://jumpingfishes.com/dancingpurpleunicorns/charging09.png" />
        <img src="http://jumpingfishes.com/dancingpurpleunicorns/charging10.png" />
        <img src="http://jumpingfishes.com/dancingpurpleunicorns/charging11.png" />
        <img src="http://jumpingfishes.com/dancingpurpleunicorns/charging12.png" />
        <img src="http://jumpingfishes.com/dancingpurpleunicorns/charging13.png" />
        <img src="http://jumpingfishes.com/dancingpurpleunicorns/charging14.png" />
        <img src="http://jumpingfishes.com/dancingpurpleunicorns/charging15.png" />
    </div>
    <div class="d-none">
        This should appear once the sequence is completed!
    </div>

    这不需要另一个类

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-02-22
      • 1970-01-01
      • 2018-11-09
      • 1970-01-01
      • 2016-09-12
      • 2019-08-12
      • 1970-01-01
      相关资源
      最近更新 更多