火次果
火次果

暂无菜单项

首页/文章/技术文章/web前端/HTML5/
打开 MD 链接

每页四张的图片轮播:索引怎么推进

发布于 9小时前
2

点击下一页切换一组图片,到达末尾回到开头。核心只有一个游标:记录当前起始下标,每次加固定步长并对总数取模。

屏幕上显示的脚本代码
页切换由一个起始下标与取模运算决定

数据与渲染

const SIZE = 4;
let start = 0;
function render() {
  const page = list.slice(start, start + SIZE);
  if (page.length < SIZE) {
    page.push(...list.slice(0, SIZE - page.length));
  }
  box.innerHTML = '';
  page.forEach(src => {
    const img = document.createElement('img');
    img.src = src;
    box.appendChild(img);
  });
}

末尾不足一组时从头部补齐,画面始终填满四个位置,不需要为末尾单独写分支。

推进

next.addEventListener('click', () => {
  start = (start + SIZE) % list.length;
  render();
});

取模保证游标不会越界。总数正好是步长整数倍时,末尾一组之后回到 0,行为一致。

三个注意点

  • 图片数量小于一组时取模结果不变,需要用总数与页大小取较小值作为实际步长。
  • 切换时保留容器高度,避免图片载入完成前页面跳动。
  • 按钮连点会造成重复渲染,加一次防抖或用动画帧合并。

可访问性

按钮要给出可读名称,图片区域标记 aria-live 以播报切换结果。纯装饰图则关闭读屏播报,避免干扰。

常见问题(FAQ)

到末尾出现空白位?
不足一组时从头部补齐,保持每页数量一致。
游标越界怎么办?
用取模推进,结果始终落在合法范围内。
图片少于一组时不动?
步长取总数与页大小的较小值,避免取模后原地不动。
切换时页面抖动?
给容器固定高度,并为图片设置尺寸,避免载入完成前高度变化。
连点导致重复渲染?
加防抖,或用动画帧合并同一次刷新周期内的多次触发。
支持作者
如果这篇内容对你有帮助,可以请作者喝杯咖啡
0 点赞
0 收藏
分享
0 讨论
反馈
0 / 600
细中粗
0 讨论
热门最新
总结
暂无总结
嗨,下午好!
所有的成功,都源自一个勇敢的开始
创作
社区
购物
会员
近期热门

暂无数据

火次果
火次果
首页
资迅中心
小店
AI导航
社区
所有的成功,都源自一个勇敢的开始
不辜负每一个勇敢的开始
关于FAQ协议
火次果 © 2026