Javascript 如何每5分钟将变量的值减少0.2?
如何每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(函数(){ 如果(数字
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);
};