插件窝 干货文章 如何用HTML、CSS和JavaScript实现父元素内子元素的两行分页显示效果?

如何用HTML、CSS和JavaScript实现父元素内子元素的两行分页显示效果?

元素 显示 div child 777    来源:    2025-03-21

要实现父元素内子元素的两行分页显示效果,可以使用HTML、CSS和JavaScript来布局和控制显示。以下是一个简单的实现示例:

1. HTML 结构

首先,创建一个包含多个子元素的父元素。

<div class="parent">
  <div class="child">1</div>
  <div class="child">2</div>
  <div class="child">3</div>
  <div class="child">4</div>
  <div class="child">5</div>
  <div class="child">6</div>
  <div class="child">7</div>
  <div class="child">8</div>
  <div class="child">9</div>
  <div class="child">10</div>
</div>
<button id="prev">上一页</button>
<button id="next">下一页</button>

2. CSS 样式

使用CSS来控制子元素的布局和分页显示。

.parent {
  display: flex;
  flex-wrap: wrap;
  width: 300px; /* 假设父元素宽度为300px */
  overflow: hidden;
}

.child {
  width: 100px; /* 每个子元素的宽度 */
  height: 50px; /* 每个子元素的高度 */
  border: 1px solid #000;
  box-sizing: border-box;
  display: flex;
  justify-content: center;
  align-items: center;
}

.hidden {
  display: none;
}

3. JavaScript 控制分页

使用JavaScript来控制子元素的显示和隐藏,实现分页效果。

const parent = document.querySelector('.parent');
const children = document.querySelectorAll('.child');
const prevButton = document.getElementById('prev');
const nextButton = document.getElementById('next');

let currentPage = 0;
const itemsPerPage = 4; // 每页显示4个子元素(两行)

function showPage(page) {
  children.forEach((child, index) => {
    if (index >= page * itemsPerPage && index < (page + 1) * itemsPerPage) {
      child.classList.remove('hidden');
    } else {
      child.classList.add('hidden');
    }
  });
}

prevButton.addEventListener('click', () => {
  if (currentPage > 0) {
    currentPage--;
    showPage(currentPage);
  }
});

nextButton.addEventListener('click', () => {
  if (currentPage < Math.ceil(children.length / itemsPerPage) - 1) {
    currentPage++;
    showPage(currentPage);
  }
});

// 初始化显示第一页
showPage(currentPage);

4. 解释

  • HTML: 父元素包含多个子元素,每个子元素代表一个项目。
  • CSS: 使用flex布局将子元素排列成两行,并通过overflow: hidden隐藏超出部分。
  • JavaScript: 通过计算当前页数和每页显示的项目数,控制子元素的显示和隐藏。点击“上一页”和“下一页”按钮时,更新当前页数并重新显示相应的子元素。

5. 运行效果

  • 初始时,显示前4个子元素(两行)。
  • 点击“下一页”按钮,显示接下来的4个子元素。
  • 点击“上一页”按钮,显示之前的4个子元素。

通过这种方式,你可以实现父元素内子元素的两行分页显示效果。你可以根据需要调整每页显示的项目数和布局样式。