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

yizhihongxing

标题: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日

相关文章

  • 常用CSS缩写语法总结

    下面是“常用CSS缩写语法总结”的完整攻略: 常用CSS缩写语法总结 在编写 CSS 样式时,经常会使用到缩写语法,简化书写,并且提高了代码的可读性。本文总结了常用的 CSS 缩写语法,帮助大家更快速地编写 CSS 样式。 缩写语法说明 基本缩写语法 基本缩写语法用于设置一个样式的属性。基本语法的形式为: 属性名称:属性值; 简写缩写语法 简写缩写语法用于同…

    css 2023年6月9日
    00
  • CSS实现footer“吸底”效果

    CSS实现footer“吸底”效果的完整攻略如下: 1. HTML结构 首先需要在HTML中添加footer元素,通常情况下,整个HTML结构的最外层会使用一个div包裹,这个div我们称之为容器,例如: <div class="container"> … <footer>这里是 footer</foot…

    css 2023年6月10日
    00
  • 详解Vue.js3.0 组件是如何渲染为DOM的

    下面就来详细讲解一下Vue.js3.0 组件是如何渲染为DOM的攻略。 组件渲染说明 在 Vue.js 中,组件是一个独立的单元,可以复用和拆分,使得我们的代码更加模块化和易于维护。Vue.js3.0 的组件渲染过程主要包含以下几个步骤: 组件的准备阶段:Vue.js会读取组件模板中的标签和属性,解析出组件的结构和属性配置; 组件的实例化阶段:Vue.js …

    css 2023年6月10日
    00
  • CSS技巧之圆角背景与三角形实现方法

    关于“CSS技巧之圆角背景与三角形实现方法”的完整攻略,我将从以下几个方面进行详细讲解: 圆角背景的实现方法 三角形的实现方法 示例说明 1. 圆角背景的实现方法 1.1 border-radius属性 CSS3中提供了border-radius属性,可以非常简单的实现圆角背景效果。border-radius属性有四个参数,分别对应左上角、右上角、右下角和左…

    css 2023年6月9日
    00
  • div与div之间有空隙的解决方法

    下面就详细讲解“div与div之间有空隙的解决方法”的完整攻略。 问题描述 在网页开发中,当我们使用多个 div 元素时,有时会遇到 div 与 div 之间会出现一定的空隙,这样会影响页面的布局效果,需要解决。 解决方法 以下列举了几种常见的解决方法: 1. 删除HTML中的空格和换行符 在 HTML 中,多个 div 之间有空隙可能是因为空格或换行符(\…

    css 2023年6月9日
    00
  • CSS精灵图(图片合并)设置方法详解

    CSS精灵图(CSS Sprites)是一种将多个小图片合并成一张大图片,并用CSS来控制显示的技术。使用CSS精灵图可以减少网页的HTTP请求次数,提高网站的加载性能和用户体验。 下面详细讲解CSS精灵图的完整攻略。 准备小图片 首先,准备多个小图片,并将它们合并成一张大图片。可以使用PS等工具来完成这个过程,或者使用在线工具如CSS Sprite Gen…

    Web开发基础 2023年3月20日
    00
  • CSS整体布局声明的一些使用技巧

    CSS整体布局是指通过一些特定的属性和技巧,实现网页布局的方式。下面我将为您介绍几种常用的CSS整体布局框架和其使用技巧。 1. CSS Grid布局 CSS Grid布局是一种二维网格系统,通过定义行和列以及网格单元格的大小和位置,实现网页布局。只需要对父元素设置display: grid;属性即可。例如: .grid-container { displa…

    css 2023年6月10日
    00
  • Dreamweaver中不用CSS样式为表格添加细线边框的方法

    在Dreamweaver中不使用CSS样式为表格添加细线边框的方法有两种,分别是使用插入表格边框属性进行添加和使用HTML代码手动添加。 使用插入表格边框属性进行添加 打开Dreamweaver软件,选择“文件”菜单,点击“新建”创建一个新文档。 点击“插入”菜单,选择“表格”选项,填写表格中的行数和列数等属性,然后点击“确定”按钮。 选中表格中的所有单元格…

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