前端开发社区前端开发社区
    • 首页
    • VUE.js
    • React.js
    • HTML
    • CSS
    • JavaScript
    • PHP
    • jquery
    • Java
    • MySQL
    • uniapp
    前端开发社区
    当前位置:首页 > JavaScript

    js实现li轮播

    2026-04-04 10:16:10JavaScript

    实现基础轮播结构

    HTML部分需创建一个包含轮播项的ul列表和导航按钮:

    <div class="carousel-container">
      <ul class="carousel-list">
        <li>Item 1</li>
        <li>Item 2</li>
        <li>Item 3</li>
      </ul>
      <button class="prev-btn">Previous</button>
      <button class="next-btn">Next</button>
    </div>

    添加CSS样式

    通过CSS设置横向排列和隐藏溢出内容:

    js实现li轮播

    .carousel-container {
      width: 300px;
      overflow: hidden;
      position: relative;
    }
    .carousel-list {
      display: flex;
      list-style: none;
      padding: 0;
      margin: 0;
      transition: transform 0.5s ease;
    }
    .carousel-list li {
      min-width: 100%;
      box-sizing: border-box;
      padding: 20px;
      background: #f0f0f0;
    }

    JavaScript轮播逻辑

    使用变量跟踪当前索引,并通过事件监听器切换显示项:

    js实现li轮播

    document.addEventListener('DOMContentLoaded', () => {
      const list = document.querySelector('.carousel-list');
      const items = document.querySelectorAll('.carousel-list li');
      const prevBtn = document.querySelector('.prev-btn');
      const nextBtn = document.querySelector('.next-btn');
      let currentIndex = 0;
    
      function updateCarousel() {
        list.style.transform = `translateX(-${currentIndex * 100}%)`;
      }
    
      nextBtn.addEventListener('click', () => {
        currentIndex = (currentIndex + 1) % items.length;
        updateCarousel();
      });
    
      prevBtn.addEventListener('click', () => {
        currentIndex = (currentIndex - 1 + items.length) % items.length;
        updateCarousel();
      });
    });

    自动轮播功能

    添加定时器实现自动播放,鼠标悬停时暂停:

    let autoPlayInterval = setInterval(() => {
      currentIndex = (currentIndex + 1) % items.length;
      updateCarousel();
    }, 3000);
    
    document.querySelector('.carousel-container').addEventListener('mouseenter', () => {
      clearInterval(autoPlayInterval);
    });
    
    document.querySelector('.carousel-container').addEventListener('mouseleave', () => {
      autoPlayInterval = setInterval(() => {
        currentIndex = (currentIndex + 1) % items.length;
        updateCarousel();
      }, 3000);
    });

    响应式调整

    通过监听窗口变化动态计算轮播项宽度:

    function handleResize() {
      items.forEach(item => {
        item.style.minWidth = `${list.offsetWidth}px`;
      });
      updateCarousel();
    }
    
    window.addEventListener('resize', handleResize);
    handleResize(); // 初始化

    标签: jsli
    分享给朋友:

    相关文章

    js实现分页

    js实现分页

    实现分页的基本思路 分页功能通常需要处理数据分割、页码生成和用户交互。核心逻辑包括计算总页数、根据当前页截取数据、渲染页码按钮等。 前端分页实现(静态数据) 假设已有全部数据,仅需前端分页展示:…

    js实现计算器

    js实现计算器

    实现基础计算器功能 使用JavaScript创建一个基础计算器需要处理数字输入、运算符逻辑和结果显示。以下是一个简单的实现示例: let currentInput = '0'; let previo…

    js实现验证码

    js实现验证码

    使用Canvas生成图形验证码 在HTML中创建一个Canvas元素用于绘制验证码。通过JavaScript随机生成数字或字母组合,并添加干扰线、噪点等干扰元素增强安全性。 <canvas i…

    js实现继承

    js实现继承

    原型链继承 通过将子类的原型指向父类的实例实现继承。子类实例可以访问父类原型上的属性和方法。 function Parent() { this.name = 'parent'; } Parent…

    js实现图片轮播

    js实现图片轮播

    实现基础图片轮播 使用HTML、CSS和JavaScript创建一个简单的图片轮播。HTML部分定义轮播容器和图片,CSS设置样式和动画效果,JavaScript处理轮播逻辑。 <div cl…

    js 进度条的实现

    js 进度条的实现

    使用 HTML 和 CSS 创建基础进度条 HTML 结构可以简单使用一个 div 元素作为容器,内部嵌套另一个 div 表示进度: <div class="progress-containe…

    最新文章
    • java子类如何调用父类的方法

      2026-04-09 08:54:50

    • java如何定义一个类

      2026-04-09 08:51:25

    • java 如何四舍五入

      2026-04-09 08:49:47

    • java如何四舍五入

      2026-04-09 08:48:15

    • java如何输出数组中的数组

      2026-04-09 08:45:31

    标签列表
    • vue (13931)
    • 原理 (626)
    • 分页 (603)
    • 跳转 (582)
    • 页面 (1094)
    • 路由 (650)
    • 列表 (473)
    • 功能 (1256)
    • 文件 (456)
    • 项目 (532)
    • 菜单 (444)
    • 组件 (1026)
    • 表格 (673)
    • 数据 (497)
    • 图片 (790)
    • js (4916)
    • 如何实现 (1693)
    • 效果 (625)
    • react (3311)
    • jquery (2238)
    • css (2728)
    • php (4572)
    • java (3021)
    • uniapp (1363)
    • elementui (828)

    陕ICP备2023000799号  网站地图

    Powered By Z-BlogPHP. Theme by TOYEAN.