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

js实现轮播

2026-01-08 12:17:24JavaScript

实现基础轮播效果

使用HTML结构创建轮播容器和图片元素:

<div class="carousel">
  <div class="carousel-inner">
    <img src="image1.jpg" class="active">
    <img src="image2.jpg">
    <img src="image3.jpg">
  </div>
</div>

添加CSS样式控制轮播显示:

.carousel {
  width: 600px;
  height: 400px;
  overflow: hidden;
  position: relative;
}

.carousel-inner img {
  width: 100%;
  height: 100%;
  position: absolute;
  opacity: 0;
  transition: opacity 0.5s ease;
}

.carousel-inner img.active {
  opacity: 1;
}

自动轮播功能实现

编写JavaScript实现自动切换:

js实现轮播

let currentIndex = 0;
const images = document.querySelectorAll('.carousel-inner img');
const totalImages = images.length;

function showNextImage() {
  images[currentIndex].classList.remove('active');
  currentIndex = (currentIndex + 1) % totalImages;
  images[currentIndex].classList.add('active');
}

setInterval(showNextImage, 3000);

添加导航控制按钮

扩展HTML结构添加控制按钮:

<div class="carousel-controls">
  <button class="prev">Previous</button>
  <button class="next">Next</button>
</div>

为按钮添加交互功能:

js实现轮播

document.querySelector('.prev').addEventListener('click', () => {
  images[currentIndex].classList.remove('active');
  currentIndex = (currentIndex - 1 + totalImages) % totalImages;
  images[currentIndex].classList.add('active');
});

document.querySelector('.next').addEventListener('click', () => {
  showNextImage();
});

响应式轮播改进

添加窗口大小变化时的响应处理:

function resizeCarousel() {
  const carousel = document.querySelector('.carousel');
  carousel.style.height = (carousel.offsetWidth * 0.66) + 'px';
}

window.addEventListener('resize', resizeCarousel);
resizeCarousel();

指示器功能实现

添加轮播指示器HTML:

<div class="carousel-indicators">
  <span class="indicator active" data-index="0"></span>
  <span class="indicator" data-index="1"></span>
  <span class="indicator" data-index="2"></span>
</div>

实现指示器交互:

const indicators = document.querySelectorAll('.indicator');
indicators.forEach(indicator => {
  indicator.addEventListener('click', () => {
    const index = parseInt(indicator.dataset.index);
    images[currentIndex].classList.remove('active');
    indicators[currentIndex].classList.remove('active');
    currentIndex = index;
    images[currentIndex].classList.add('active');
    indicators[currentIndex].classList.add('active');
  });
});

标签: js
分享给朋友:

相关文章

js实现vue

js实现vue

Vue.js 简介 Vue.js 是一个渐进式 JavaScript 框架,用于构建用户界面。其核心库专注于视图层,易于与其他库或现有项目整合。 实现 Vue.js 的基本步骤 安装 Vue.j…

js实现动画

js实现动画

使用 CSS 动画与 JavaScript 控制 通过 JavaScript 动态添加或移除 CSS 类来触发动画。CSS 定义关键帧(@keyframes),JavaScript 通过 classL…

js实现计算器

js实现计算器

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

js 进度条的实现

js 进度条的实现

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

原生js实现轮播图

原生js实现轮播图

基本结构搭建 HTML部分需要包含轮播图容器、图片列表及导航按钮。结构示例如下: <div class="slider-container"> <div class="slid…

js实现pdf在线预览

js实现pdf在线预览

使用PDF.js实现PDF在线预览 PDF.js是由Mozilla开发的一个开源JavaScript库,可以在网页中直接渲染PDF文件。以下是实现PDF在线预览的步骤: 引入PDF.js库 在H…

最新文章
  • vue3实现popever

    2026-02-25 02:44:55

  • 预加载vue怎么实现

    2026-02-25 02:43:26

  • vue文件上传后端实现

    2026-02-25 02:41:47

  • vue实现无缝循环滚动

    2026-02-25 02:40:15

  • vue如何实现事件绑定

    2026-02-25 02:38:37

标签列表
  • vue (6162)
  • 原理 (263)
  • 拖拽 (194)
  • 分页 (245)
  • 跳转 (270)
  • 页面 (481)
  • 路由 (327)
  • 列表 (207)
  • 功能 (503)
  • 项目 (218)
  • 菜单 (192)
  • 组件 (511)
  • 表格 (285)
  • 数据 (211)
  • 图片 (325)
  • js (2522)
  • 按钮 (177)
  • 如何实现 (672)
  • 效果 (277)
  • 加载 (178)
  • react (1925)
  • jquery (360)
  • css (952)
  • php (1140)
  • elementui (269)

陕ICP备2023000799号  网站地图

Powered By Z-BlogPHP. Theme by TOYEAN.