当前位置:首页 > JavaScript

js实现广告轮播的实现

2026-04-07 06:17:30JavaScript

广告轮播实现方法

使用纯JavaScript实现

通过定时器和DOM操作实现基础轮播效果。

const slides = document.querySelectorAll('.slide');
let currentSlide = 0;

function showSlide(n) {
  slides.forEach(slide => slide.style.display = 'none');
  currentSlide = (n + slides.length) % slides.length;
  slides[currentSlide].style.display = 'block';
}

function nextSlide() {
  showSlide(currentSlide + 1);
}

// 自动轮播
setInterval(nextSlide, 3000);

// 初始化显示第一张
showSlide(0);

使用CSS过渡效果

结合CSS过渡实现平滑切换动画。

const slider = document.querySelector('.slider');
const slides = document.querySelectorAll('.slide');
let index = 0;

function slide() {
  index = (index + 1) % slides.length;
  slider.style.transform = `translateX(-${index * 100}%)`;
}

setInterval(slide, 3000);

对应CSS:

.slider {
  display: flex;
  transition: transform 0.5s ease;
}
.slide {
  min-width: 100%;
}

添加导航控制

实现手动切换和自动播放的组合功能。

const prevBtn = document.getElementById('prev');
const nextBtn = document.getElementById('next');
let autoPlay = setInterval(nextSlide, 3000);

prevBtn.addEventListener('click', () => {
  clearInterval(autoPlay);
  showSlide(currentSlide - 1);
  autoPlay = setInterval(nextSlide, 3000);
});

nextBtn.addEventListener('click', () => {
  clearInterval(autoPlay);
  nextSlide();
  autoPlay = setInterval(nextSlide, 3000);
});

响应式处理

根据窗口大小调整轮播布局。

function resizeHandler() {
  const slideWidth = window.innerWidth;
  slides.forEach(slide => {
    slide.style.width = `${slideWidth}px`;
  });
  slider.style.transform = `translateX(-${index * slideWidth}px)`;
}

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

使用第三方库

推荐使用Swiper.js实现专业级轮播。

js实现广告轮播的实现

import Swiper from 'swiper';

new Swiper('.swiper-container', {
  loop: true,
  autoplay: {
    delay: 3000,
  },
  navigation: {
    nextEl: '.swiper-button-next',
    prevEl: '.swiper-button-prev',
  },
  pagination: {
    el: '.swiper-pagination',
    clickable: true,
  },
});

性能优化建议

避免频繁重排和重绘,使用transform代替left/top属性。预加载图片资源,合理设置轮播间隔时间。移动端考虑添加触摸事件支持,使用requestAnimationFrame优化动画性能。

标签: 广告js
分享给朋友:

相关文章

vue.js实现轮播

vue.js实现轮播

Vue.js 实现轮播功能 使用第三方库(推荐) Vue.js 生态中有许多成熟的轮播组件库,例如 vue-awesome-swiper 或 swiper,它们功能丰富且易于集成。 安装 swipe…

js实现pdf在线预览

js实现pdf在线预览

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

链表实现js

链表实现js

链表的基本概念 链表是一种线性数据结构,由一系列节点组成,每个节点包含数据和一个指向下一个节点的指针(单向链表)或两个指针(双向链表)。与数组不同,链表在内存中非连续存储,插入和删除操作更高效,但随机…

vue实现js休眠

vue实现js休眠

实现 JavaScript 休眠的方法 在 Vue 中实现 JavaScript 休眠(延迟执行)可以通过以下方式实现。由于 JavaScript 本身没有内置的 sleep 函数,通常使用 Prom…

js实现正交

js实现正交

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

js实现代码雨

js实现代码雨

实现代码雨效果 使用HTML5 Canvas和JavaScript可以轻松实现经典的代码雨效果。以下是完整的实现代码和说明: HTML结构 <!DOCTYPE html> <htm…