选项卡图像库

创建于 2024-12-03 / 48
字体: [默认] [大] [更大]

了解如何使用 CSS 和 JavaScript 创建选项卡式图片库。


选项卡图片库

点击图片将其展开:

Nature Snow Mountains Lights
Nature × Nature Snow × Snow Mountains × Mountains Lights × Northern Lights 亲自试一试 »

创建选项卡图片库

步骤 1) 添加 HTML:

实例

<!-- The grid: four columns -->
<div class="row">
  <div class="column">
    <img src="img_nature.jpg" alt="Nature" onclick="myFunction(this);">
  </div>
  <div class="column">
    <img src="img_snow.jpg" alt="Snow" onclick="myFunction(this);">
  </div>
  <div class="column">
    <img src="img_mountains.jpg" alt="Mountains" onclick="myFunction(this);">
  </div>
  <div class="column">
    <img src="img_lights.jpg" alt="Lights" onclick="myFunction(this);">
  </div>
</div>

<!-- The expanding image container -->
<div class="container">
  <!-- Close the image -->
  <span onclick="this.parentElement.style.display='none'" class="closebtn">&times;</span>

  <!-- Expanded image -->
  <img id="expandedImg" style="width:100%">

  <!-- Image text -->
  <div id="imgtext"></div>
</div>

使用图像来扩展特定图像。 在列内单击的图像显示在列下方的容器中。


步骤 2) 添加 CSS:

创建四列并设置图像样式:

实例

/* 网格:四个相等的列,彼此相邻浮动 */
.column {
  float: left;
  width: 25%;
  padding: 10px;
}

/* 为网格内的图像设置样式 */
.column img {
  opacity: 0.8;
  cursor: pointer;
}

.column img:hover {
  opacity: 1;
}

/* 清除列后的浮动 */
.row:after {
  content: "";
  display: table;
  clear: both;
}

/* 展开的图片容器(定位关闭按钮和文字需要定位)*/
.container {
  position: relative;
  display: none;
}

/* 扩展图像文本 */
#imgtext {
  position: absolute;
  bottom: 15px;
  left: 15px;
  color: white;
  font-size: 20px;
}

/* 图像内的可关闭按钮 */
.closebtn {
  position: absolute;
  top: 10px;
  right: 15px;
  color: white;
  font-size: 35px;
  cursor: pointer;
}

步骤 3) 添加 JavaScript:

实例

function myFunction(imgs) {
  // 获取展开后的图片
  var expandImg = document.getElementById("expandedImg");
  // 获取图片文本
  var imgText = document.getElementById("imgtext");
  // 在展开的图像中使用与从网格中单击的图像相同的 src
  expandImg.src = imgs.src;
  // 使用可点击图片的alt属性值作为展开图片内的文字
  imgText.innerHTML = imgs.alt;
  // 显示容器元素(用 CSS 隐藏)
  expandImg.parentElement.style.display = "block";
} 亲自试一试 »

0 人点赞过