当前位置:首页 > 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
分享给朋友:

相关文章

js实现轮播

js实现轮播

实现轮播图的基本思路 轮播图的核心逻辑是通过定时切换展示的图片或内容,通常结合左右滑动按钮和指示器(小圆点)增强交互性。以下是基于原生JavaScript的实现方法。 HTML结构 构建轮播图的HT…

js 实现分页

js 实现分页

实现分页的基本逻辑 分页功能通常需要后端返回数据总量或总页数,前端根据当前页码和每页条数截取对应数据。以下是一个基于JavaScript的简单分页实现方案: 前端分页实现 假设已有从后端获取的完整数…

uniapp广告联盟

uniapp广告联盟

Uniapp广告联盟接入指南 Uniapp作为跨平台开发框架,可通过广告联盟实现流量变现。主流广告平台均提供SDK或插件支持,需根据平台特性选择接入方式。 主流广告平台推荐 腾讯优量汇(原广点通)…

vue实现广告组件

vue实现广告组件

vue实现广告组件的方法 使用动态组件实现 在Vue中可以通过动态组件的方式加载广告组件,根据不同的条件展示不同的广告内容。动态组件使用<component :is="currentCompon…

js实现百叶窗

js实现百叶窗

使用CSS和JavaScript实现百叶窗效果 通过CSS动画和JavaScript事件监听可以实现百叶窗效果。核心思路是将内容区域分割为多个条状元素,通过控制它们的展开/折叠状态来模拟百叶窗。…

js实现密码

js实现密码

密码强度验证 使用正则表达式验证密码强度是一种常见方法。以下代码检查密码是否包含大小写字母、数字和特殊字符,且长度至少为8位: function checkPasswordStrength(pass…