<script>
document.getElementsByName("checkbox").onclick = function() {myFunction()};
function myFunction() {
document.body.style.backgroundColor = "black";
}
</script>
<style>
.switch {
position: relative;
display: inline-block;
width: 60px;
height: 34px;
}
.switch input {display:none;}
.slider {
position: absolute;
cursor: pointer;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-color: #ccc;
-webkit-transition: .4s;
transition: .4s;
}
.slider:before {
position: absolute;
content: "";
height: 26px;
width: 26px;
left: 4px;
bottom: 4px;
background-color: white;
-webkit-transition: .4s;
transition: .4s;
}
input:checked + .slider {
background-color: #2196F3;
}
input:focus + .slider {
box-shadow: 0 0 1px #2196F3;
}
input:checked + .slider:before {
-webkit-transform: translateX(26px);
-ms-transform: translateX(26px);
transform: translateX(26px);
}
body {
background-color: red;
}
</style>
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
.switch {
position: relative;
display: inline-block;
width: 60px;
height: 34px;
}
.switch input {display:none;}
.slider {
position: absolute;
cursor: pointer;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-color: #ccc;
-webkit-transition: .4s;
transition: .4s;
}
.slider:before {
position: absolute;
content: "";
height: 26px;
width: 26px;
left: 4px;
bottom: 4px;
background-color: white;
-webkit-transition: .4s;
transition: .4s;
}
input:checked + .slider {
background-color: #2196F3;
}
input:focus + .slider {
box-shadow: 0 0 1px #2196F3;
}
input:checked + .slider:before {
-webkit-transform: translateX(26px);
-ms-transform: translateX(26px);
transform: translateX(26px);
}
body {
background-color: red;
}
</style>
<meta charset="utf-8">
</head>
<body>
<h2>Toggle Switch</h2>
<label class="switch">
<input type="checkbox">
<span class="slider"></span>
</label><br>
<script>
document.getElementsByName("checkbox").onclick = function() {myFunction()};
function myFunction() {
document.body.style.backgroundColor = "black";
}
</script>
</body>
</html>
我在这里有点菜鸟,但我有一个切换开关,我想在单击它时将当前为红色的全身背景更改为黑色。但出于某种原因,我的脚本不起作用。有人可以解释我做错了什么吗?
最佳答案
您的代码存在的问题是单击事件未在复选框中注册,因为您使用了错误的方法来获取元素。尝试使用 id 代替 getElementById
。下面是一个解决方案。希望这会有所帮助。
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
.switch {
position: relative;
display: inline-block;
width: 60px;
height: 34px;
}
.switch input {
display: none;
}
.slider {
position: absolute;
cursor: pointer;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-color: #ccc;
-webkit-transition: .4s;
transition: .4s;
}
.slider:before {
position: absolute;
content: "";
height: 26px;
width: 26px;
left: 4px;
bottom: 4px;
background-color: white;
-webkit-transition: .4s;
transition: .4s;
}
input:checked+.slider {
background-color: #2196F3;
}
input:focus+.slider {
box-shadow: 0 0 1px #2196F3;
}
input:checked+.slider:before {
-webkit-transform: translateX(26px);
-ms-transform: translateX(26px);
transform: translateX(26px);
}
body {
background-color: #BB9797;
}
</style>
<meta charset="utf-8">
</head>
<body>
<h2>Toggle Switch</h2>
<label class="switch">
<input id="toggleSwitch" type="checkbox">
<span class="slider"></span>
</label><br>
<script>
document.getElementById("toggleSwitch").onclick = function() {
myFunction()
};
function myFunction() {
let color = document.body.style.background;
if (color === 'black') {
document.body.style.background = "#BB9797";
} else {
document.body.style.background = "black";
}
}
</script>
</body>
</html>
关于javascript - 使用拨动开关更改背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52694958/