…">
当前位置:首页 > jquery

jquery写轮播图

2026-02-04 02:24:50jquery

基础轮播图实现

使用jQuery实现基础轮播图需要HTML结构、CSS样式和jQuery动画控制。以下是核心实现方式:

HTML结构部分:

<div class="slider">
  <div class="slides">
    <div class="slide active"><img src="image1.jpg"></div>
    <div class="slide"><img src="image2.jpg"></div>
    <div class="slide"><img src="image3.jpg"></div>
  </div>
  <button class="prev">❮</button>
  <button class="next">❯</button>
</div>

CSS样式部分:

.slider {
  position: relative;
  width: 800px;
  height: 400px;
  overflow: hidden;
}
.slides {
  display: flex;
  width: 300%;
  transition: transform 0.5s ease;
}
.slide {
  width: 33.333%;
}
.slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

jQuery控制部分:

$(document).ready(function(){
  let currentSlide = 0;
  const slides = $('.slide');
  const totalSlides = slides.length;

  $('.next').click(function(){
    currentSlide = (currentSlide + 1) % totalSlides;
    updateSlider();
  });

  $('.prev').click(function(){
    currentSlide = (currentSlide - 1 + totalSlides) % totalSlides;
    updateSlider();
  });

  function updateSlider() {
    const offset = -currentSlide * 100;
    $('.slides').css('transform', `translateX(${offset}%)`);
    slides.removeClass('active');
    slides.eq(currentSlide).addClass('active');
  }
});

自动轮播功能扩展

为轮播图添加自动播放功能,需要增加定时器控制:

let autoSlideInterval;

function startAutoSlide() {
  autoSlideInterval = setInterval(() => {
    currentSlide = (currentSlide + 1) % totalSlides;
    updateSlider();
  }, 3000);
}

function stopAutoSlide() {
  clearInterval(autoSlideInterval);
}

// 初始化时启动自动轮播
startAutoSlide();

// 鼠标悬停时暂停
$('.slider').hover(
  function() { stopAutoSlide(); },
  function() { startAutoSlide(); }
);

指示器添加

添加底部小圆点指示器增强用户体验:

HTML新增部分:

<div class="indicators"></div>

CSS新增样式:

.indicators {
  position: absolute;
  bottom: 20px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
}
.indicator {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: rgba(255,255,255,0.5);
  margin: 0 5px;
  cursor: pointer;
}
.indicator.active {
  background: white;
}

jQuery扩展功能:

// 初始化指示器
slides.each(function(index) {
  $('.indicators').append(`<div class="indicator" data-index="${index}"></div>`);
});

// 指示器点击事件
$('.indicator').click(function() {
  currentSlide = $(this).data('index');
  updateSlider();
});

// 更新指示器状态
function updateSlider() {
  // ...原有代码...
  $('.indicator').removeClass('active');
  $('.indicator').eq(currentSlide).addClass('active');
}

响应式处理

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

function resizeSlider() {
  const sliderWidth = $('.slider').width();
  $('.slide').width(sliderWidth);
  $('.slides').css('transform', `translateX(-${currentSlide * sliderWidth}px)`);
}

$(window).resize(function() {
  resizeSlider();
});

// 初始化时调用一次
resizeSlider();

过渡动画优化

使用CSS3过渡替代jQuery动画获得更流畅效果:

.slides {
  transition: transform 0.6s cubic-bezier(0.25, 0.1, 0.25, 1);
}

无限循环改进

改进无限循环效果,避免快速点击时的跳动问题:

jquery写轮播图

function updateSlider() {
  const offset = -currentSlide * 100;
  $('.slides').css({
    'transition': 'transform 0.5s ease',
    'transform': `translateX(${offset}%)`
  });

  // 重置位置时禁用动画
  if(currentSlide >= totalSlides || currentSlide < 0) {
    setTimeout(() => {
      $('.slides').css('transition', 'none');
      currentSlide = (currentSlide + totalSlides) % totalSlides;
      const newOffset = -currentSlide * 100;
      $('.slides').css('transform', `translateX(${newOffset}%)`);
    }, 500);
  }
}

分享给朋友:

相关文章

jquery添加

jquery添加

jQuery 添加元素的方法 在jQuery中,添加元素到DOM有多种方式,可以根据需求选择合适的方法。 append() 将内容插入到选定元素的内部末尾处。 $("#container").ap…

html jquery

html jquery

HTML 与 jQuery 基础 HTML 是超文本标记语言,用于构建网页的结构和内容。jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画和 Aja…

jquery表单

jquery表单

jQuery 表单操作 jQuery 提供了丰富的 API 用于表单操作,包括表单元素的选择、值获取与设置、事件处理等。 表单元素选择 使用 jQuery 选择器可以方便地选取表单元素: // 选…

jquery遍历

jquery遍历

jQuery遍历方法 jQuery提供了多种遍历DOM元素的方法,可以根据需求选择合适的方式操作元素集合。 each()方法 each()方法用于遍历jQuery对象中的每个元素,并对每个元素执行回…

jquery轮播

jquery轮播

jQuery轮播实现方法 jQuery轮播可以通过多种方式实现,以下是几种常见的方法: 使用Slick插件 Slick是一个流行的jQuery轮播插件,功能强大且易于使用。引入jQuery和Slic…

jquery 弹出

jquery 弹出

jQuery 弹出窗口实现方法 jQuery 可以通过多种方式实现弹出窗口效果,以下是几种常见的方法: 使用 jQuery UI Dialog jQuery UI 提供了一个 Dialog 组件,可…