javascript - 我正在尝试将过滤器:JavaScript 中的亮度应用于一堆图像元素
问题描述
var brightness = document.getElementById("brightness");
trash.addEventListener("click", function() {
brightness.style.filter = "brightness(100%)";
});
<link href="https://use.fontawesome.com/releases/v5.0.10/css/all.css" rel="stylesheet">
<div id="trash">
<i class="fas fa-trash"></i>
</div>
<img src="imgs/utensil.svg" alt="utensil" id="utensil" id="brightness">
<img src="imgs/straw.svg" alt="straw" id="straw" id="brightness">
<img src="imgs/chipbag.svg" alt="chip bag" id="chip_bag" id="brightness">
<img src="imgs/garbagebag.svg" alt="garbage bag" id="g_bag" id="brightness">
<img src="imgs/eggs.svg" alt="eggs container" id="egg_container" id="brightness">
嗨,对不起,我必须嵌入一系列不存在的svg文件。有没有办法通过点击垃圾桶图标来应用亮度到所有 4 个图像,而不必分配每个 img 的 id (untesil.style.filter = "brightness(100%);..等等)?我做了第二个统一id,这是“亮度”,但它似乎不起作用。
解决方案
就像评论中的另一个人说的那样,你需要使用类......这行得通。
var trash = document.getElementById("trash");
trash.addEventListener("click", function() {
var elems = document.querySelectorAll(".brightness");
for (var i = elems.length; i--;) {
elems[i].style.filter = "brightness(1.7)";
}
});
<link href="https://use.fontawesome.com/releases/v5.0.10/css/all.css" rel="stylesheet">
<div id="trash">
<i class="fas fa-trash"></i>
</div>
<img src="imgs/utensil.svg" alt="utensil" class="brightness">
<img src="imgs/straw.svg" alt="straw" class="brightness">
<img src="imgs/chipbag.svg" alt="chip bag" class="brightness">
<img src="imgs/garbagebag.svg" alt="garbage bag" class="brightness">
<img src="imgs/eggs.svg" alt="eggs container" class="brightness">
推荐阅读
- reactjs - react-router - 按参数显示组件
- three.js - 如何在three.js中修复网格表面上线的z-fighting?
- javascript - 获取函数外变量的值
- dropbox - Laravel - 保管箱驱动程序 - 此驱动程序不支持检索 URL
- angular - 从组件检查 Service Worker 安装进度(角度)
- javascript - mxgraph 工具提示不显示
- circe - 使用圆形光学修改任何级别的字段
- c++ - std::is_same 不能通过 constexpr 自动变量的 decltype 工作
- javascript - 页面刷新时的 JavaScript 警告框
- javascript - ajax成功功能无法更改按钮文本