javascript - 单击时增加图像尺寸和高度

标签 javascript html css

我正在尝试在 JavaScript 中创建一个函数,该函数将增加单击的图像的大小。我不知道为什么它不允许我在 javascript 中使用 rem,但是当我拿走 rem 时,数字本身仍然不起作用。

html:

<div class="main-textbox-about">
                    <div class="main-textbox-about-saints">
                        <img src="images/Saint Slide/st-peter-2176658_1280.jpg" class="main-textbox-about-saints-photos main-textbox-about-saints-photos-1" onclick="highlight();">
                        <img src="images/Saint Slide/saint-stylianos-2191792_1280.jpg" class="main-textbox-about-saints-photos main-textbox-about-saints-photos-2">
                        <img src="images/Saint Slide/st-demetrius-2176682_1280.jpg" class="main-textbox-about-saints-photos main-textbox-about-saints-photos-3">
                        <img src="images/Saint Slide/archon-2086750_1280.jpg" class="main-textbox-about-saints-photos main-textbox-about-saints-photos-4">
                        <img src="images/Saint Slide/st-andrew-2176673_1280.jpg" class="main-textbox-about-saints-photos main-textbox-about-saints-photos-5">
                        <img src="images/Saint Slide/saint-john-the-baptist-1652345_1280.jpg" class="main-textbox-about-saints-photos main-textbox-about-saints-photos-6">
                        <img src="images/Saint Slide/st-paul-2176669_1280.jpg" class="main-textbox-about-saints-photos main-textbox-about-saints-photos-7">
                    </div>
                </div>
function highlight() {
    var img = document.querySelector(".main-textbox-about-saints-photos")
    img.innerHTML.style.height = 50;
    img.innerHTML.style.width = 40;
}

最佳答案

您可以在图像的容器元素上添加点击监听器,并使用事件对象来获取被点击的图像并设置其宽度和高度。

宽度和高度的值应该是字符串而不是数字

const imgContainer = document.querySelector('.main-textbox-about-saints');

imgContainer.addEventListener('click', (e) => {
  e.target.style.height = '150px';
  e.target.style.width = '150px';
});
<div class="main-textbox-about">
  <div class="main-textbox-about-saints">
    <img src="https://picsum.photos/100">
    <img src="https://picsum.photos/100">
    <img src="https://picsum.photos/100">
  </div>
</div>

编辑

根据您的评论,您一次只想要一张大图像。您可以通过跟踪先前放大的图像并在发生点击事件时重置其宽度和高度来实现此目的

const imgContainer = document.querySelector('.main-textbox-about-saints');
let prevEnlargedImg;

imgContainer.addEventListener('click', (e) => {
  if (prevEnlargedImg) {
    prevEnlargedImg.style.height = '100px';
    prevEnlargedImg.style.width = '100px';
  }

  prevEnlargedImg = e.target;

  e.target.style.height = '150px';
  e.target.style.width = '150px';
});
<div class="main-textbox-about">
  <div class="main-textbox-about-saints">
    <img src="https://picsum.photos/100">
    <img src="https://picsum.photos/100">
    <img src="https://picsum.photos/100">
  </div>
</div>

关于javascript - 单击时增加图像尺寸和高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61894632/

相关文章:

javascript - 模型窗口显示相同的内容

html - 将 span 换行到表格单元格内

javascript - 如何将字符串化对象添加到 url 末尾

javascript - 不显眼的 JavaScript onload 函数

javascript - 使用 Jquery 在新打开的浏览器窗口上触发元素单击

html - Bootstrap 导航栏元素在较小的屏幕上未正确对齐

javascript - 在 String.prototype 中使用 'this'

html - unicode 字符是否比简单文本版本更好或更语义化?

html - css only 复选框(带有内容属性)

css - 在导航栏菜单中滚动已修复