使用 JavaScript 在单击时切换元素的背景颜色
JavaScript 中要在单击时切换元素的背景颜色:
- 向元素添加点击事件侦听器。
- 每次单击该元素时,检查该元素的当前背景颜色并进行更改。
-
使用
element.style.backgroundColor
属性更改元素的背景颜色。
以下是本文示例的 HTML。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
</head>
<body>
<button id="btn" style="background-color: salmon">Button</button>
<script src="index.js"></script>
</body>
</html>
这是相关的 JavaScript 代码。
const btn = document.getElementById('btn');
btn.addEventListener('click', function onClick(event) {
const backgroundColor = btn.style.backgroundColor;
if (backgroundColor === 'salmon') {
btn.style.backgroundColor = 'green';
// 👇️ optionally change text color
// btn.style.color = 'white';
} else {
btn.style.backgroundColor = 'salmon';
// 👇️ optionally change text color
// btn.style.color = 'blue';
}
});
我们向按钮元素添加了一个点击事件侦听器,因此每次单击按钮时都会调用一个函数。
在函数中,我们检查元素的当前背景颜色是否等于特定值,如果是则更改它。
如果元素的背景颜色不等于该值,我们将背景颜色重置为其初始值。
我们可以使用 else if
语句添加更多条件。
const btn = document.getElementById('btn');
btn.addEventListener('click', function onClick(event) {
const backgroundColor = btn.style.backgroundColor;
if (backgroundColor === 'salmon') {
btn.style.backgroundColor = 'green';
} else if (backgroundColor === 'green') {
btn.style.backgroundColor = 'purple';
} else {
btn.style.backgroundColor = 'salmon';
}
});
在上面的示例中,元素的背景颜色在橙红色、绿色和紫色之间交替。
请注意
,我们可以使用事件对象上的target
属性来访问用户单击的元素,而不是显式使用 btn。
const btn = document.getElementById('btn');
btn.addEventListener('click', function onClick(event) {
const backgroundColor = event.target.style.backgroundColor;
if (backgroundColor === 'salmon') {
event.target.style.backgroundColor = 'green';
} else {
event.target.style.backgroundColor = 'salmon';
}
});
在示例中,我们在事件对象上使用了 target
属性。 target
属性是对调度事件的对象(元素)的引用。
换句话说,
event.target
使我们能够访问用户单击的 DOM 元素。
因为事件监听器被添加到按钮元素,所以 event.target
指向按钮。
我们可以通过 console.log
打印 target
属性来查看用户点击的 DOM 元素。
const btn = document.getElementById('btn');
btn.addEventListener('click', function onClick(event) {
console.log(event.target);
const backgroundColor = event.target.style.backgroundColor;
if (backgroundColor === 'salmon') {
event.target.style.backgroundColor = 'green';
} else {
event.target.style.backgroundColor = 'salmon';
}
});
使用 event.target
更通用一些,在向较大元素添加事件时特别有用,例如 document
。
相关文章
使用 CSS 和 JavaScript 制作文本闪烁
发布时间:2023/04/28 浏览次数:146 分类:CSS
-
本文提供了使用 CSS、JavaScript 和 jQuery 使文本闪烁的详细说明。
在 PHP 变量中存储 Div Id 并将其传递给 JavaScript
发布时间:2023/03/29 浏览次数:69 分类:PHP
-
本文教导将 div id 存储在 PHP 变量中并将其传递给 JavaScript 代码。
在 JavaScript 中从字符串中获取第一个字符
发布时间:2023/03/24 浏览次数:93 分类:JavaScript
-
在本文中,我们将看到如何使用 JavaScript 中的内置方法获取字符串的第一个字符。
在 JavaScript 中获取字符串的最后一个字符
发布时间:2023/03/24 浏览次数:141 分类:JavaScript
-
本教程展示了在 javascript 中获取字符串最后一个字符的方法