当前位置: 首页 > 知识库问答 >
问题:

我怎么能在javascript中结合循环和设置间隔?

裴畅
2023-03-14

我正在为学校的javascript入门课程做作业。我的概念是一种植物,当你给它浇水时它会生长,当它在x时间后没有水时它会变小。给植物加水使其生长是有效的,但我很难弄清楚如何使其在x时间内收缩。我被告知把它放在一个循环中,然后加上setInterval,但我是一个noob,所以我真的不知道该怎么办。此外,代码是荷兰语!

谢谢你抽出时间来帮助我!!

超文本标记语言

<html lang="nl">

<head>
    <meta charset="UTF-8">
    <title>Hulp of geen hulp. Dat is de vraag.</title>
    <link rel="stylesheet" href="_css/stijl.css">
</head>

<body>

    <header>
        <h1>Help aan/uit.</h1>
    </header>

    <section>
        <p>Wil je weten hoe het werkt? Klik dan op de HELP NU! button.</p>

        <button id='helpbutton1'>HELP NU!</button>

        <div class='helptekst' id='helptekst1' hidden>
            <button  class='wegkruisje' id='wegkruisje1'>X</button>
            <p>Zo dus: <br>
            Je klikt op de helpbutton voor hulp. En als je weet hoe het werkt, kan je de hulp weer wegklikken met het kruisje in de rechter bovenhoek.</p>
        </div>

    </section>


    <footer>
        <p>en onderaan staat ook iets.</p>
    </footer>

    <script src='_js/script.js'></script>
</body>

</html>

JAVASCRIPT:

console.log('Hier wordt water gegeven. ');

//afbeeldingen
var waterGieters = ['0ml.png','500ml.png', '1000ml.png', '1500ml.png', '2000ml.png'];
var plantGroei = ['plant-baby.png', 'plant-peuter.png', 'plant-kind.png', 'plant-tiener.png', 'plant-volwassen.png'];


// declaratie DOM elementen
var gieterImg = document.querySelector ('#waterGieter');
var plantenImg = document.querySelector ('#planten');
var buitenImg = document.querySelector ('#buiten');
var waterButton = document.querySelector ('#toevoegenWater');
var dagButton = document.querySelector ('#maakDag');
var nachtButton = document.querySelector ('#maakNacht');
var bodyElement = document.querySelector ('body');
var groei = 0 ; //initieel waarde van groei op 0

// Als waterButton geklikt wordt, gaat de plant groeien en watergieter met water vullen. Plaatsjes wordt aangepast per klik.

function groeiPlant() {
    console.log(groei);
    //if(groei<0) {
    //  groei = 0 ;}

    if(groei>=plantGroei.length -1) {
        waterButton.hidden = true ;}


    gieterImg.src = 'images/' + waterGieters[ groei ];
    plantenImg.src = 'images/' + plantGroei[ groei ];
}


// eventHandler functies
function geefWater() {
    groei = groei + 1 ;
    groeiPlant();
}

//Functions om naar dag of nacht te veranderen doormiddel van een button
function maakDag (event) {
    console.log('het is dag');
    buitenImg.src = 'css/dag.png';
    bodyElement.classList.remove('nacht');}

function maakNacht (event) {
    console.log('het is nacht');
    buitenImg.src = 'css/nacht.png';
    bodyElement.classList.add('nacht');}



//eventListener toevoegen aan DOM element
waterButton.addEventListener('click', geefWater);
waterButton.addEventListener('click', groeiPlant);
nachtButton.addEventListener('click', maakNacht);
dagButton.addEventListener('click', maakDag);

共有1个答案

梁丘烨
2023-03-14

我希望这有帮助,你用按钮加水

var water = document.getElementById('boton');

var plantSize = 0;

function grow(){
    plantSize++;
    console.log(plantSize);
}

function small(){
    plantSize--;
    console.log(plantSize);
}

const noWater = setInterval (() => {
    small()
}, 2000);

water.addEventListener('click', () => grow());
<button id="boton"> Water!!! </button>
 类似资料:
  • 专家。Javascript没有产生期望的延迟效果<从其他问题开始,我知道,问题在于settimeout和我使用它的方式。但我仍然无法理解Settimeout是如何工作的。所以我把代码放在这里。出于知识目的,只需要使用Javascript 事实上,我正试图用javascript来澄清我关于这个闭包的概念。它们是Javascript中扭曲的东西吗?

  • 我有两个循环。在第一个循环中,我分割字段(分割)。在第二个循环中,我想打印新的字段值。只有0。我想知道循环有什么问题。我没有发现错误。:)我认为问题出在这方面: 我在Windows 7中使用Visual Studio 2013编程。 %lf输出(正确): %f输出(不正确):

  • 我在for循环中有一个set interval函数,当它在set interval函数中时,如果它满足条件,就会发出警报并清除间隔。下面是我的代码,但它不工作。谁能告诉我这里的错误是什么。 谢谢 我试图解决的是:当本地时间与定时器数组中的时间匹配时,我需要每次获得警报(第0列;定时器[计数][0])。数组已经排序

  • 我试着用Java画一个长方形。我设置框架大小(800400)和可调整大小(假)矩形的x=50,y=50宽度=700高度=300。为什么不在中间呢?非常感谢。

  • 需求是在缓存中存放一条数据, 并且设置有效时间1分钟? 应该怎么实现? 在文档中没有找到设置时间的方法 https://developer.mozilla.org/zh-CN/docs/Web/API/Storage/setItem

  • 谢谢你的回应。我检查了位置,它被标识为与ANDROID_SDK_HOME环境路径相同的位置。它仍然说根是未定义的。我创建了一个到相同位置的ANDROID_SDK_ROOT环境路径,但它仍然没有定义。