Javascript 如何每5分钟将变量的值减少0.2?

Javascript 如何每5分钟将变量的值减少0.2?,javascript,html,Javascript,Html,如何每5分钟将变量的值减少0.2 我有一个变量var=7.2。现在我添加了一个按钮,当我点击它时,变量将增加1 现在我想添加一个选项,其中变量每5分钟递减0.2,并停止在原来的数字7.2 我已经尝试了window.setInterval(),但没有成功。以下是如何使用 var数; var interval=setInterval(函数(){ 如果(数字

如何每5分钟将变量的值减少0.2

我有一个变量
var=7.2
。现在我添加了一个按钮,当我点击它时,变量将增加1

现在我想添加一个选项,其中变量每5分钟递减0.2,并停止在原来的数字7.2

我已经尝试了
window.setInterval()
,但没有成功。

以下是如何使用

var数;
var interval=setInterval(函数(){
如果(数字<7.2)清除间隔(间隔);
数字=数字-0.2;
}, 300000);

不要使用setInterval,而是使用setTimeout:

window.myVar = 7.2;

var incrementVar = function() {
  window.myVar += 1;
}

var decrementVar = function() {
  window.myVar -= 0.2;
  setTimeout(decrementVar, (5 * 60 * 1000));
}
setTimeout(decrementVar, (5 * 60 * 1000));
对于按钮:

<a href="javascript:void(0);" onclick="incrementVar();">My Button</a>

试试这个

function myFunction(){
    if (counter === 0){
         document.getElementById("dicht").src = "images/open.jpg";
         degree = degree + 0.9;
         temp.innerHTML = degree; //+ " " + "graden celsius in de wijnkoeler";
         counter = 1;
     } else if (counter === 1){
         document.getElementById("dicht").src = "images/dicht.jpg";
         var id = window.setInterval(function(){
             degree = parseFloat(Math.max(7.2, (degree - 0.2)).toPrecision(2));
             if(degree == 7.2){
                 window.clearInterval(id);
                 counter = 0;
             }
             temp.innerHTML = degree;
         }, 1000 * 60 * 5);
     }
}

通过使用
setInterval

var time = 7.2;
var fivemin = 300000;
$('someid').text(time);
setInterval(function(){
    time = time - 0.2;
    $('someid').text(time);    
}, fivemin);

这应该可以做到:

// global variable
var myGlobal = 8.2;

window.onload = function countback() {
    window.setInterval(function cb() {
        if (myGlobal >= 7.4) {
            myGlobal = parseFloat(myGlobal - .2).toFixed(1);
        }
    }, 5 * 60 * 1000);
};

注意:如果您使用的是像jQuery这样的JS库,那么其中一些可以更容易地完成。

您可以发布代码吗?您使用的是什么代码?它怎么不起作用?这看起来很结实。谢谢你,它起作用了!!!但现在,当我按下按钮时,它不会再加0.9。你知道我怎么解决的为什么不<代码>设置间隔可以正常工作。使用
setTimeout
(如果您的函数可能需要很长时间)是有原因的,但这里的情况并非如此。如果你要说“不要使用某些东西”,请添加一个解释。此外,如果希望每5秒执行一次,则必须跟踪上一个函数完成后的时间,并调整等待时间……setInterval更容易混淆,也更不必要,虽然OP希望5分钟而不是5秒,减少一个变量所需的时间可以忽略不计。@user3058036您应该能够将其应用于代码中。要求他人为您编写代码是不可取的。你应该试试,如果你不能让它工作,张贴一个单独的问题(链接到这个)。这使得这个答案对其他人也很有用,而不会添加噪音。为什么要使用
parseFloat
?因为它是一个浮点值,所以如果我们添加,那么结果也是浮点值。@Juan MendesIt不需要,
parseFloat
接受一个
String
,而您正在传递一个
数字
@Juan Mendes,谢谢你消除了我的困惑……)
// global variable
var myGlobal = 8.2;

window.onload = function countback() {
    window.setInterval(function cb() {
        if (myGlobal >= 7.4) {
            myGlobal = parseFloat(myGlobal - .2).toFixed(1);
        }
    }, 5 * 60 * 1000);
};