jquery 实现轮播图详解及实例代码

标题:jQuery实现轮播图详解及实例代码

1. 准备工作

在使用jQuery实现轮播图之前,需要引入jQuery库文件。可以在head标签中添加如下代码:

<head>
  <script src="https://cdn.bootcss.com/jquery/3.6.0/jquery.min.js"></script>
</head>

另外,还需要编写一些CSS样式来控制轮播图的布局和样式。可以在head标签中添加如下代码:

<head>
  <style>
    .carousel {
      position: relative;
      overflow: hidden;
      width: 100%;
      height: 300px;
    }
    .carousel .carousel-inner {
      position: relative;
      width: 100%;
      height: 100%;
    }
    .carousel .carousel-inner .item {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      opacity: 0;
      z-index: 1;
    }
    .carousel .carousel-inner .active {
      opacity: 1;
      z-index: 2;
    }
    .carousel .carousel-indicators {
      position: absolute;
      bottom: 20px;
      left: 50%;
      transform: translateX(-50%);
      z-index: 3;
    }
    .carousel .carousel-indicators li {
      display: inline-block;
      width: 10px;
      height: 10px;
      margin: 0 5px;
      background-color: #999;
      border-radius: 50%;
      cursor: pointer;
    }
    .carousel .carousel-indicators li.active {
      background-color: #fff;
    }
    .carousel .left,
    .carousel .right {
      position: absolute;
      z-index: 3;
      top: 50%;
      transform: translateY(-50%);
      font-size: 2em;
      font-weight: bold;
      color: #fff;
      cursor: pointer;
    }
    .carousel .left {
      left: 30px;
    }
    .carousel .right {
      right: 30px;
    }
  </style>
</head>

2. HTML结构

在准备工作完成之后,可以开始编写轮播图的HTML结构。可以使用如下代码作为轮播图的基础结构:

<div class="carousel">
  <div class="carousel-inner">
    <div class="item active">
      <img src="img/01.jpg" alt="轮播图1">
    </div>
    <div class="item">
      <img src="img/02.jpg" alt="轮播图2">
    </div>
    <div class="item">
      <img src="img/03.jpg" alt="轮播图3">
    </div>
  </div>
  <ul class="carousel-indicators">
    <li class="active"></li>
    <li></li>
    <li></li>
  </ul>
  <a href="#" class="left">&lt;</a>
  <a href="#" class="right">&gt;</a>
</div>

以上结构中包含了轮播图的基本要素:轮播图片、指示器和左右切换按钮。其中,轮播图片需要用<img>标签来展示,指示器使用<ul><li>标签,左右切换按钮使用<a>标签。

3. JS代码

在HTML结构编写完成后,可以开始编写jQuery代码实现轮播图。可以使用如下代码:

<script>
  $(function() {
    var $carousel = $('.carousel');
    var $carouselInner = $carousel.find('.carousel-inner');
    var $items = $carouselInner.find('.item');
    var $indicators = $carousel.find('.carousel-indicators li');
    var $left = $carousel.find('.left');
    var $right = $carousel.find('.right');
    var index = 0;
    var timerId = null;

    // 定义切换函数
    function carousel() {
      $items.eq(index).addClass('active').siblings().removeClass('active');
      $indicators.eq(index).addClass('active').siblings().removeClass('active');
    }

    // 定义自动切换函数
    function autoCarousel() {
      timerId = setInterval(function() {
        index++;
        if (index >= $items.length) {
          index = 0;
        }
        carousel();
      }, 3000);
    }

    // 调用自动切换函数
    autoCarousel();

    // 鼠标悬停事件
    $carousel.hover(function() {
      clearInterval(timerId);
    }, function() {
      autoCarousel();
    });

    // 点击指示器事件
    $indicators.click(function() {
      index = $(this).index();
      carousel();
    });

    // 点击左箭头事件
    $left.click(function() {
      index--;
      if (index < 0) {
        index = $items.length - 1;
      }
      carousel();
    });

    // 点击右箭头事件
    $right.click(function() {
      index++;
      if (index >= $items.length) {
        index = 0;
      }
      carousel();
    });
  });
</script>

以上代码中,使用$()来获取轮播图中的各个元素,并定义了切换函数和自动切换函数。使用setInterval()定时器来控制轮播图自动切换,使用clearInterval()函数来清除定时器。鼠标悬停时,清除定时器停止自动切换;鼠标移出时,重新调用自动切换函数。点击指示器和左右箭头时,通过改变index的值来实现切换。

4. 示例说明

示例一

使用缓动效果实现轮播图切换。在carousel()函数中,修改为如下代码:

function carousel() {
  $items.eq(index).stop(true, true).fadeIn(1000).siblings().stop(true, true).fadeOut(1000);
  $indicators.eq(index).addClass('active').siblings().removeClass('active');
}

在图片切换时,使用fadeIn()fadeOut()方法来实现渐入渐出效果。其中,stop()方法用来清除动画队列,防止出现卡顿的效果。

示例二

使用缓动效果实现轮播图切换。在carousel()函数中,修改为如下代码:

function carousel() {
  $carouselInner.animate({'left': -index * $items.width()}, 500);
  $indicators.eq(index).addClass('active').siblings().removeClass('active');
}

使用animate()方法来实现轮播图切换。其中,动画的属性为left,值为-index * $items.width(),表示轮播图向左移动的距离。动画的时间为500毫秒。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:jquery 实现轮播图详解及实例代码 - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • java根据模板导出PDF的详细实现过程

    下面我将详细讲解“java根据模板导出PDF的详细实现过程”的完整攻略。 1. 概述 首先,我们需要明确一点:要实现 Java 根据模板导出 PDF,需要用到两个工具——FreeMarker 和 iText。 FreeMarker 是一款模板引擎,用于从数据模型中动态生成文本输出(HTML、电子邮件、配置文件等)。而 iText 则是一款 Java PDF …

    css 2023年6月10日
    00
  • 基于Bootstrap3表格插件和分页插件实例详解

    关于“基于Bootstrap3表格插件和分页插件实例详解”的攻略,可以按照以下步骤进行: 1. 确认所需库文件 在使用Bootstrap3表格插件和分页插件之前,需要在网页中引入相关的库文件,包括Bootstrap、jQuery和bootstrap-table等,可使用CDN或下载到本地引用。 示例引入CDN文件的代码如下: <!DOCTYPE htm…

    css 2023年6月10日
    00
  • 怎么改善现有网站

    改善现有网站是一个持续的过程,需要不断地优化和改进。本文将提供一些改善现有网站的完整攻略,包括网站性能优化、用户体验优化、SEO 优化等方面。 网站性能优化 1. 压缩和合并 CSS 和 JavaScript 文件 将多个 CSS 和 JavaScript 文件压缩和合并成一个文件,可以减少 HTTP 请求次数,从而提高网站的加载速度。 2. 使用浏览器缓存…

    css 2023年5月18日
    00
  • 浅析BootStrap栅格系统

    浅析Bootstrap栅格系统 什么是栅格系统? 栅格系统是一种网页布局方式,它将整个页面分成了若干等分,然后将内容放到这些等分中。这种布局方式具有响应式的特点,能够在不同的设备上保持页面的整体布局不变。 Bootstrap栅格系统 Bootstrap栅格系统是一种响应式的网页布局框架,它可以让开发者轻松地创建出美观、适配各种设备的网页。在Bootstrap…

    css 2023年6月11日
    00
  • 详解如何解决position:fixed固定定位偏移问题

    下面将详细讲解如何解决position:fixed固定定位偏移问题的完整攻略。 问题描述 使用position: fixed可以使元素相对于浏览器窗口固定在某一位置,不随页面滚动而移动。但是,有时候会发现position: fixed定位的元素位置偏移了预期位置,出现了莫名其妙的位移情况。 这是由于使用position: fixed时,元素生成的”新层级”比…

    css 2023年6月9日
    00
  • 使用CSS伪元素实现文字部分变色的方法

    使用CSS伪元素实现文字部分变色的方法,可以通过设置before或after伪元素,并将其放置在目标元素之前或之后,来实现对目标元素内部某些文字样式的更改。 具体实现步骤如下: 设置目标元素的position属性为relative,这是为后面使用伪元素提供定位的基础。 .target{ position: relative; } 设置目标元素之后的伪元素样式…

    css 2023年6月10日
    00
  • Bootstrap标签页(Tab)插件切换echarts不显示问题的解决

    下面是“Bootstrap标签页(Tab)插件切换echarts不显示问题的解决”的完整攻略: 问题描述 在使用Bootstrap标签页(Tab)插件切换echarts图表时,切换后的图表不显示。查询代码后发现,echarts图表在第一个tab中是正常显示的,但是在切换到第二个tab后却不显示了。 解决方案 Step 1 确认问题 首先,我们需要确认此问题是…

    css 2023年6月11日
    00
  • CSS3混合模式mix-blend-mode/background-blend-mode简介

    CSS3混合模式mix-blend-mode/background-blend-mode简介 mix-blend-mode CSS3混合模式是在CSS2的基础上增加的新特性,用于控制在两个图层重叠时如何混合它们的颜色值。mix-blend-mode属性控制元素的内容与其父元素的背景混合模式,它指定元素内容的混合方式,即将前景层和背景层的颜色进行混合。 混合模…

    css 2023年6月9日
    00
合作推广
合作推广
分享本页
返回顶部