使用 JS 将 onclick 和 return 的高度更改为正常
Change height onclick and return to normal with JS
我是新来的。
我试图在单击图片时更改图片的高度,然后当我再次单击它们时,它们 return 变为原始高度。我试图通过使用相同的 CSS class、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">
我只能为第一张图片做我想要的行为。所有其他人都不这样做。
你能帮我知道我做错了什么吗?
提前致谢
您访问元素的方式有误。使用内置的 event
,像这样:
var element = document.getElementsByClassName("imgclasstosize");
for(var i = 0; i < element.length; i++) {
var element = element[i];
element.onclick = function(event) {
if (event.target.style.height == "500px") {
event.target.style.height = "200px";
} else {
event.target.style.height = "500px";
}
}
}
您可以 select 所有元素使用 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">
我是新来的。
我试图在单击图片时更改图片的高度,然后当我再次单击它们时,它们 return 变为原始高度。我试图通过使用相同的 CSS class、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">
我只能为第一张图片做我想要的行为。所有其他人都不这样做。 你能帮我知道我做错了什么吗?
提前致谢
您访问元素的方式有误。使用内置的 event
,像这样:
var element = document.getElementsByClassName("imgclasstosize");
for(var i = 0; i < element.length; i++) {
var element = element[i];
element.onclick = function(event) {
if (event.target.style.height == "500px") {
event.target.style.height = "200px";
} else {
event.target.style.height = "500px";
}
}
}
您可以 select 所有元素使用 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">