如何通过另一个事件停止javascript进程?
假设我们有一个简单的循环javascript过程如何通过另一个事件停止javascript进程?,javascript,javascript-events,addeventlistener,Javascript,Javascript Events,Addeventlistener,假设我们有一个简单的循环javascript过程 function test() { el=document.getElementById("test"); var opacity = 1; var id = setInterval(function() { opacity = opacity - 0.1; el.style.opacity= opacity; \\ if(mouseout) {clearInterval(id);} How to
function test() {
el=document.getElementById("test");
var opacity = 1;
var id = setInterval(function() {
opacity = opacity - 0.1;
el.style.opacity= opacity;
\\ if(mouseout) {clearInterval(id);} How to do this?
if(opacity == 0) {clearInterval(id);}
}, 500);
}
document.getElementById("test").
addEventListener('mouseover', function(){
test();
});
当发生moveover
事件时,该过程将启动并继续,直到达到if条件。我们如何定义另一个if条件
,以通过另一个事件停止进程
在当前示例中,我们如何在mouseout
事件发生时停止进程(降低不透明度)。在函数外部声明id
变量。然后可以从mouseout
处理程序调用clearInterval(id)
请注意,您实际上并不需要test()
函数,您可以将其内容直接放入鼠标悬停处理程序中:
var id,
el = document.getElementById("test");
el.addEventListener('mouseover', function(){
var opacity = 1;
id = setInterval(function() {
opacity = opacity - 0.1;
el.style.opacity= opacity;
if(opacity == 0) {clearInterval(id);}
}, 500);
});
el.addEventListener('mouseout', function() {
clearInterval(id);
});
在函数外部声明id
变量。然后可以从mouseout
处理程序调用clearInterval(id)
请注意,您实际上并不需要test()
函数,您可以将其内容直接放入鼠标悬停处理程序中:
var id,
el = document.getElementById("test");
el.addEventListener('mouseover', function(){
var opacity = 1;
id = setInterval(function() {
opacity = opacity - 0.1;
el.style.opacity= opacity;
if(opacity == 0) {clearInterval(id);}
}, 500);
});
el.addEventListener('mouseout', function() {
clearInterval(id);
});