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

    js实现li轮播

    2026-03-01 09:35:33JavaScript

    实现 li 轮播的 JavaScript 方法

    HTML 结构
    确保有一个包含 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 样式
    为轮播添加基础样式,隐藏非活动项:

    #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:

    js实现li轮播

    #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中实现报表功能可以通过多种方式完成,常见的方法包括使用原生JavaScript、第三方库(如Chart.js、D3.js)或结合后端数据渲染。以…

    js实现驼峰

    js实现驼峰

    实现驼峰命名的几种方法 使用正则表达式和字符串替换 通过正则表达式匹配字符串中的特定模式(如下划线或短横线),并将其后的字母转换为大写,同时移除分隔符。 function toCamelCase(s…

    节流js实现

    节流js实现

    节流(Throttle)的实现原理 节流是一种限制函数执行频率的技术,确保函数在一定时间间隔内最多执行一次。适用于高频触发事件(如滚动、输入、窗口调整等)的场景。 基础实现方式 使用时间戳判断是否执…

    js进度条实现

    js进度条实现

    使用HTML和CSS创建基础结构 在HTML中创建一个容器元素用于显示进度条,通常使用<div>元素。CSS用于设置进度条的样式,包括宽度、高度、颜色和圆角等属性。 <div cl…

    js实现下拉刷新

    js实现下拉刷新

    监听触摸事件 通过监听 touchstart、touchmove 和 touchend 事件来检测用户下拉手势。记录触摸起始位置和移动距离。 let startY = 0; let currentY…

    js 实现验证码

    js 实现验证码

    实现验证码的 JavaScript 方法 生成随机验证码 验证码通常由随机字符(数字、字母或混合)组成。以下代码生成一个 6 位随机验证码(数字和字母混合): function generateCa…