• Item 1&…">
    当前位置:首页 > JavaScript

    js实现li轮播

    2026-03-01 09:35:33JavaScript

    实现 li 轮播的 JavaScript 方法

    HTML 结构
    确保有一个包含 li 元素的容器,例如:

    js实现li轮播

    <ul id="slider">
      <li>Item 1</li>
      <li>Item 2</li>
      <li>Item 3</li>
    </ul>
    <button id="prev">Previous</button>
    <button id="next">Next</button>

    CSS 样式
    为轮播添加基础样式,隐藏非活动项:

    js实现li轮播

    #slider {
      list-style: none;
      padding: 0;
      position: relative;
      height: 200px;
      overflow: hidden;
    }
    #slider li {
      position: absolute;
      width: 100%;
      opacity: 0;
      transition: opacity 0.5s;
    }
    #slider li.active {
      opacity: 1;
    }

    JavaScript 逻辑
    通过切换 active 类控制显示项:

    const slider = document.getElementById('slider');
    const items = slider.querySelectorAll('li');
    const prevBtn = document.getElementById('prev');
    const nextBtn = document.getElementById('next');
    let currentIndex = 0;
    
    // 初始化显示第一项
    items[currentIndex].classList.add('active');
    
    // 下一项函数
    function showNext() {
      items[currentIndex].classList.remove('active');
      currentIndex = (currentIndex + 1) % items.length;
      items[currentIndex].classList.add('active');
    }
    
    // 上一项函数
    function showPrev() {
      items[currentIndex].classList.remove('active');
      currentIndex = (currentIndex - 1 + items.length) % items.length;
      items[currentIndex].classList.add('active');
    }
    
    // 绑定按钮事件
    nextBtn.addEventListener('click', showNext);
    prevBtn.addEventListener('click', showPrev);
    
    // 自动轮播(可选)
    setInterval(showNext, 3000);

    扩展功能:平滑滑动效果

    若需水平滑动效果,修改 CSS 和 JavaScript:

    #slider li {
      position: absolute;
      width: 100%;
      left: 100%;
      transition: left 0.5s;
    }
    #slider li.active {
      left: 0;
    }
    #slider li.prev {
      left: -100%;
    }
    function showNext() {
      items[currentIndex].classList.remove('active');
      items[currentIndex].classList.add('prev');
      currentIndex = (currentIndex + 1) % items.length;
      items[currentIndex].classList.add('active');
    }

    注意事项

    • 确保 li 的父容器有明确的宽度和 overflow: hidden
    • 若需无限循环,使用取模运算(%)处理索引越界。
    • 自动轮播时,建议在用户交互时清除定时器以避免冲突。

    标签: jsli
    分享给朋友:

    相关文章

    js实现乘

    js实现乘

    JavaScript 实现乘法运算 在 JavaScript 中实现乘法运算可以通过多种方式完成,包括基本运算符、函数封装以及高级算法(如大数乘法)。以下是几种常见方法: 使用基本乘法运算符 Jav…

    js实现抽奖

    js实现抽奖

    实现抽奖功能的基本思路 抽奖功能的核心是随机选择奖项并展示结果。可以通过数组存储奖项,利用随机数生成索引,最后通过动画增强用户体验。 准备奖项数据 定义一个数组存储奖项信息,每个奖项可以包含名称、图…

    js实现祖玛

    js实现祖玛

    实现祖玛游戏的核心思路 祖玛游戏的核心玩法是发射彩色珠子,形成三个或以上相同颜色的珠子即可消除。以下是使用JavaScript实现的基本框架。 游戏初始化 创建画布并初始化游戏状态: const…

    js实现vue路由

    js实现vue路由

    Vue 路由的基本实现 在 Vue.js 中实现路由功能通常使用 Vue Router 库。Vue Router 是 Vue.js 官方的路由管理器,用于构建单页面应用(SPA)。 安装 Vue R…

    js节流实现

    js节流实现

    节流的概念 节流(Throttle)是一种限制函数执行频率的技术,确保函数在一定时间间隔内只执行一次。常用于滚动事件、窗口调整等高频触发的场景。 基础实现方法 使用时间戳判断是否执行函数: fun…

    js实现正交

    js实现正交

    正交的概念 正交在数学和计算机科学中通常指两个向量垂直或线性无关。在编程中,正交性常被用于设计模块化、低耦合的系统。 向量正交判断 判断两个向量是否正交可以通过点积是否为0来实现: functio…