javascript - Javascript Scope,使用间隔开始停止按钮
问题描述
我对范围有疑问。
我有一个不工作的停止按钮。开始按钮效果很好,但我似乎无法让停止按钮工作,我知道它与范围有关。我将不胜感激任何帮助。
let css = document.querySelector('h3');
let color1 = document.querySelector(".color1");
let color2 = document.querySelector(".color2");
let color3 = document.querySelector(".color3");
let degree = document.querySelector(".degree");
let body = document.getElementById("gradient");
let deg = document.getElementById("deg");
let random = document.getElementById("random");
let start = document.getElementById("start");
let stop = document.getElementById("stop");
function setGradient() {
body.style.background =
"linear-gradient(" +
degree.value +
"deg, " +
color1.value +
", " +
color2.value +
", " +
color3.value +
")";
css.textContent = body.style.background + ";";
deg.textContent = degree.value;
}
function increment() {
degree.value = 0;
setInterval(function() {
degree.value = degree.value % 360 + 1;
setGradient();
if (degree.value == 359) {
increment();
}
}, 100);
}
start.addEventListener("click", increment);
stop.addEventListener("click", function() {
clearInterval(counter);
});
color1.addEventListener("input", setGradient);
color2.addEventListener("input", setGradient);
color3.addEventListener("input", setGradient);
degree.addEventListener("input", setGradient);
window.onload = setGradient;
解决方案
您必须分配counter
变量。
counter = setInterval(..)
推荐阅读
- python - (DRIVER_NOT_FOUND', "没有找到 'Teradata' 的驱动程序。可用的驱动程序:) - 使用带有 teradata 模块的 Anaconda-Jupyter 笔记本
- angular - Angular 6反应形式映射对象
- css - 使用悬停时的文字更改图像的亮度
- java - 从资源文件中读取会导致 NullPointerExpection
- angular - 我们可以只升级 rxjs 版本并将其他所有内容保持在同一版本吗
- statistics - 使用带有标准偏差的 BigQuery 检测异常值
- java - Java 瞬态关键字是语法糖吗?
- python - 猴子修补字符串 Python
- css - 我可以检查父元素在 sass 中有特定的类吗?
- wxwidgets - wxWidgets 3.0 的多点触控手势?