在javascript中设置不同的计时器来显示div

问题描述 投票:0回答:2

我有这段代码,使我能够设置一个计时器来显示/隐藏 div,但我想对其进行调整,以便能够设置不同的计时器,我的意思是一些 div 为 2000 毫秒,其他为 1500 毫秒。但我不知道该怎么做,因为我从来没有用 JS 编写过代码,我尝试适应危险,但我也无法使其工作。

编辑:我找到了一种方法,在 JS 中添加“IF”语句!但我仍然有大约 100 个 div,在我看来,这样做有点“编码错误”。

所以这是js:

<script>
$(document).ready(function() {
    var images = $('.images')
    current = 0;
    images.hide();
    Rotator();
    function Rotator() {
        if (current == 1 || current == 3){
            $(images[current]).fadeIn('slow').delay(2500).fadeOut('slow');
        }
        else{
        $(images[current]).fadeIn('slow').delay(10).fadeOut('slow');
        }
       $(images[current]).queue(function() {
           current = current < images.length - 1 ? current + 1 : 0;
           Rotator();
           $(this).dequeue();
       });
    }
});
</script>

在 HTML 中:

<div id="imagescollection">

<div class="images"><!----- 1 ------>
<div class="pam _3-95 _2ph- _2lej uiBoxWhite noborder"><div class="_3-95 _2pim _2lek 
_2lel">Anne faure (Brouteur)</div>
<div class="_3-95 _2let"><div><div></div><div>Coucou</div><div></div><div></div></div> 
</div>
<div class="_3-94 _2lem">15 janv. 2022 à 08:29</div></div></div>

<div class="images"><!----- 73 ------>
<div class="pam _3-95 _2ph- _2lej uiBoxWhite noborder"><div class="_3-95 _2pim _2lek 
_2lel">Sir Perceval</div>
<div class="_3-95 _2let"><div><div></div><div>Salut</div><div></div><div></div></div> 
</div>
<div class="_3-94 _2lem">15 janv. 2022 à 08:56</div></div></div>

<div class="images"><!----- 72 ------>
<div class="pam _3-95 _2ph- _2lej uiBoxWhite noborder"><div class="_3-95 _2pim _2lek 
_2lel">Anne faure (Brouteur)</div>
<div class="_3-95 _2let"><div><div></div><div>Comment tu vas</div><div></div><div></div> 
</div></div>
<div class="_3-94 _2lem">17 janv. 2022 à 07:30</div></div></div>

<div class="images"><!----- 71 ------>
<div class="pam _3-95 _2ph- _2lej uiBoxWhite noborder"><div class="_3-95 _2pim _2lek 
_2lel">Sir Perceval</div>
<div class="_3-95 _2let"><div><div></div><div>On se connaît?</div><div></div><div></div> 
</div></div>
<div class="_3-94 _2lem">17 janv. 2022 à 11:09</div></div></div>


</div>

有没有办法修改此代码以便能够为我的 div 设置不同的时间?预先感谢您!

javascript html timer
2个回答
1
投票

如果你想渲染更多的div,你可以尝试这种方式

index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link rel="stylesheet" href="style.css">
</head>
<body>
    <script src="./script.js"></script>
</body>
</html>

样式.css

.reveal{
    padding: 2rem;
    background-color: pink;
    margin: 1rem;
    transform: translateX(150%);
    transition: all 0.5s ease-in-out;
}

body{
    overflow-x: hidden;
}

脚本.js

var div1 = document.getElementById('div1');
var div2 = document.getElementById('div2');

for(var i=0; i<100; i++){
    var div = document.createElement('div');
    div.classList.add('reveal')
    div.innerText = `This is div ${i}`; // here u can use other array which contains the contents
    document.body.appendChild(div);
}

var reveals = document.getElementsByClassName('reveal');
for(var i=0; i<reveals.length; i++){
    ((div)=>{
        setTimeout(()=>{
            div.style.transform = 'translate(0)';
        }, 1000*(i+1));
    })(reveals[i]);
}
console.log(reveals)

-1
投票

很简单 您所要做的就是在作为参数传递给此 setTimeout 的函数中设置不同的超时并根据需要更改样式(参考)

index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link rel="stylesheet" href="style.css">
</head>
<body>
    <div id="div1">This is div 1</div>
    <div id="div2">This is div 2</div>
    <script src="./script.js"></script>
</body>
</html>

样式.css

#div1{
    padding: 2rem;
    background-color: grey;
    font-weight: bold;
    margin: 1rem;
    transform: translateX(150%);
    transition: all 0.5s ease-in-out;
}

#div2{
    padding: 2rem;
    background-color: pink;
    margin: 1rem;
    transform: translateX(150%);
    transition: all 0.5s ease-in-out;
}

body{
    overflow-x: hidden;
}

脚本.js

var div1 = document.getElementById('div1');
var div2 = document.getElementById('div2');

setTimeout(()=>{div1.style.transform = 'translateX(0)'},1000)
setTimeout(()=>{div2.style.transform = 'translateX(0)'},2000)
© www.soinside.com 2019 - 2024. All rights reserved.