javascript - javascript代码禁用了css中的悬停样式,如何使用它们?
问题描述
默认情况下有一些图像,grayscale(1)
当您将鼠标悬停在图像上时,它应该变为grayscale(0)
,所有这些都在 css 文件中。但我想要当我点击它或当我将鼠标悬停在它上面时,在这两种情况下图像都会得到grayscale(0)
但悬停效果不起作用。我试图将代码grayscale(0)
放在addEventListener
另一个函数中,但它不起作用。
更新:
我添加了 codpen 链接和一行代码。
正如你从一开始就看到的那样,左边的人是有颜色的,因为我正在展示他们的信息。我希望当我将鼠标悬停在其他人身上时,他们会获得彩色主题,而他们的信息已显示的人仍然是彩色的。
showInfo(0);
function showInfo(person) {
var img, info, names;
names = document.querySelectorAll('.box h2');
for (let i = 0; i < names.length; i++) {
names[i].style.display = 'none';
}
names[person].style.display = 'block';
info = document.querySelectorAll('.info p');
for (let i = 0; i < info.length; i++) {
info[i].style.display = 'none';
}
info[person].style.display = 'block';
img = document.querySelectorAll('.images img');
for (let i = 0; i < img.length; i++) {
img[i].style.filter= 'grayscale(1)';
}
img[person].style.filter= 'grayscale(0)';
}
解决方案
我已经更新了你的 showInfo 函数:
function showInfo(person) {
var img, info, names;
names = document.querySelectorAll('.box h2');
for (let i = 0; i < names.length; i++) {
names[i].style.display = 'none';
}
names[person].style.display = 'block';
info = document.querySelectorAll('.info p');
for (let i = 0; i < info.length; i++) {
info[i].style.display = 'none';
}
info[person].style.display = 'block';
img = document.querySelectorAll('.images img');
for (let i = 0; i < img.length; i++) {
img[i].style.filter= '';
}
img[person].style.filter= 'grayscale(0)';
}
showInfo(0);
更改非常小,可以让您获得所需的行为:
for (let i = 0; i < img.length; i++) {
img[i].style.filter= '';
}
推荐阅读
- python - 使用用户定义的比较函数在两个 Pandas 数据帧之间查找
- php - 如果我在 PDO 事务中的 INSERT 之后运行 SELECT,我的更改会显示吗?
- javascript - 如何动态获取添加到 HTML 单元格的按钮的唯一 ID
- classification - MATLAB 函数“fitcknn”不可用
- javascript - 如何使用javascript jquery从表中的2个值中计算减法
- python - Mocking integrated AWS s3 function with moto and fastapi
- macos - 致命错误:EXC_BAD_ACCESS / EXC_I386_GPFLT with map.find()
- excel-formula - 为什么 FIND 评估为 #VALUE!当它找不到价值时?
- sql - 在“更新前”触发器中设置 NEW.column 设置来自先前触发器调用的值
- python - 在 python flexx 小部件中连接到数据库时出错