HTML中的JavaScript正在改变背景
JavaScript in HTML changing background
我不知道自己在做什么。我以为html一切都很好,然后我不得不添加一些简单的javascript。当用户点击按钮时,我只是想改变背景颜色。
这就是我目前所拥有的:
CSS
body {
background-color:grey;
}
Javascript
function changeBackground() {
if (document.body.style.backgroundColor = 'grey')
{
document.body.style.backgroundColor = 'black';
}
else
{
document.body.style.backgroundColor = 'grey';
}
}
Html
<button type="button" onclick="changeBackground()">
Click Me!
</button>
您的if
子句错误(您正在分配而不是测试背景色):
function changeBackground() {
if (document.body.style.backgroundColor == 'grey'){
document.body.style.backgroundColor = 'black';
} else {
document.body.style.backgroundColor = 'grey';
}
}
Richard,我将提供一个替代所有其他答案的方案,您应该在开发的所有web前端中考虑以下结构。
HTML是您显示的东西,JS是它的行为方式,CSS是它的风格。
也就是说,尽量避免使用JS为元素设置样式,而是切换一个类并允许CSS来完成这项工作。在你的情况下,你可以写:
function changeBackground()
{
$(body).toggleClass('dark');
}
<button type="button" onclick="changeBackground()">
Click Me!
</button>
body
{
background-color: grey;
}
body.dark
{
background-color: black;
}
在这里,我们只需在body元素上和下切换一个类,CSS就会相应地"响应"。我们有一个很好的清晰的关注分离。
你可以选择你的类名比dark
更有意义,但这个想法是你的JS不在乎颜色和样式的细节。
尝试:
$("button").click(function(){
$("body").css("background-color", "blue");
});
尝试FIDDLE、
问题是您使用的是assignment operator =
而不是comparison operator == or ===
function changeBackground() {
if (document.body.style.backgroundColor == 'grey') {
document.body.style.backgroundColor = 'red';
} else {
document.body.style.backgroundColor = 'grey';
}
}
希望这对你有效
相关文章:
- 如何用jquery动画改变背景颜色,就像一个过渡
- 具体化:模态改变背景并导致页面向右跳转
- HTML中的JavaScript正在改变背景
- jQuery改变背景颜色不工作
- 当改变背景颜色的html选择,第一个选项改变它
- 如何让TinyMCE的用户改变背景
- 高图-改变背景颜色沿特定的日期范围
- JavaScript:在点击时改变背景颜色(切换类)
- 每秒钟在红色和绿色之间改变背景颜色
- Jquery改变背景颜色悬停,不断闪烁
- 改变背景颜色不透明度与时间间隔
- 如何使用javascript改变背景图像的透明度
- Javascript根据用户所在的区域改变背景图像
- Jquery改变背景大小和图像src
- 逐渐改变背景颜色
- 获取JavaScript oninput函数来改变背景颜色
- 使用Javascript和RGBA改变背景颜色渐变
- 单选按钮不改变背景颜色HTML/CSS
- 如何改变背景图像与褪色
- 当项目被点击改变背景颜色- CSS(没有jQuery)