javascript - 用JS改变高度onclick并恢复正常
问题描述
我是新来的。
当我单击它们时,我试图更改图片的高度,然后当我再次单击它们时,它们会返回到原始高度。我试图通过使用相同的 CSS 类、for 循环和 if/else 来做到这一点。
我的图像 html 是这样的几次:
var element = document.getElementsByClassName("imgclasstosize");
for(var i = 0; i < element.length; i++) {
var element = element[i];
element.onclick = function() {
if (element.style.height == "500px") {
element.style.height = "200px";
} else {
element.style.height = "500px";
}
}
}
<img class="imgclasstosize" src="https://assets.picspree.com/variants/FRgeQ4d3pFXszVF7QW9VBgFQ/f4a36f6589a0e50e702740b15352bc00e4bfaf6f58bd4db850e167794d05993d">
<img class="imgclasstosize" src="https://assets.picspree.com/variants/RXCuAnyzqoapjkZQuhDFwBMs/f4a36f6589a0e50e702740b15352bc00e4bfaf6f58bd4db850e167794d05993d">
我只能为第一张图片做我想要的行为。所有其他人都不这样做。你能帮我知道我做错了什么吗?
提前致谢
解决方案
您可以使用 选择所有元素querySelector
,也可以保留getElementsByClassName()
。然后遍历每个图像并添加事件监听器:
var element = document.querySelectorAll('.imgclasstosize');
element.forEach(el => {
el.addEventListener('click', function(event) {
if (event.target.style.height == '500px') {
event.target.style.height = '200px';
} else {
event.target.style.height = '500px';
}
});
});
<img class="imgclasstosize" src="https://assets.picspree.com/variants/FRgeQ4d3pFXszVF7QW9VBgFQ/f4a36f6589a0e50e702740b15352bc00e4bfaf6f58bd4db850e167794d05993d">
<img class="imgclasstosize" src="https://assets.picspree.com/variants/RXCuAnyzqoapjkZQuhDFwBMs/f4a36f6589a0e50e702740b15352bc00e4bfaf6f58bd4db850e167794d05993d">
推荐阅读
- c# - ElasticSearch NEST 完成建议过滤器
- asp.net-core - 如何在 ASP.NET Core 3.1 应用程序中根据 URL 进行单独的 IIS Express 配置?
- javascript - 将函数转换为类错误(“主题”未定义 no-undef)
- excel - excel中的if语句不返回假值
- javascript - 带有动态参数的 querySelectorAll
- java - 如何用观察者模式观察同一类型的不同属性?
- javascript - 旋转后定位div
- html - 使用 css 在文本上方渲染元数据
- c# - Response.redirect 在 Sitefinity 中抛出“发送 HTTP 标头后服务器无法设置状态”错误
- javascript - 获取css规则,chrome扩展