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日

相关文章

  • vue滚动固定顶部及修改样式的实例代码

    下面是关于“vue滚动固定顶部及修改样式的实例代码”的完整攻略: 一、思路梳理 本文实例通过自定义指令来实现 vue 滚动固定顶部及修改样式的效果,核心步骤如下: 在指令 bind 钩子中获取当前元素的 offsetTop 和 scrollTop,记录在对象中。 在指令 inserted 钩子中添加滚动事件,判断当前元素是否到达顶部,如果到达顶部则设置该元素…

    css 2023年6月10日
    00
  • CSS实现输入框的周围高亮效果让边框发亮

    下面是CSS实现输入框的周围高亮效果让边框发亮的完整攻略: 1. box-shadow属性 可以使用CSS的box-shadow属性来实现输入框边框高亮。box-shadow属性可以在元素周围添加一个或多个阴影。 例如,下面的代码可以让输入框的边框在获取焦点时出现一个浅蓝色阴影: input:focus { box-shadow: 0 0 4px #66bf…

    css 2023年6月10日
    00
  • 浅谈使用 Yii2 AssetBundle 中 $publishOptions 的正确姿势

    下面是详细的攻略: 什么是 Yii2 AssetBundle? Yii2 为我们提供了一个非常实用的 AssetBundle 类,用于管理资源文件,包括 CSS、JS、图片等文件,使得我们能够更好地组织资源文件,减少重复代码,提高代码可读性与可维护性。 为什么要使用 $publishOptions? 在 Yii2 中,我们可以通过以下方式来注册资源文件: $…

    css 2023年6月10日
    00
  • firefox和IE系列的相关区别整理 以备后用

    Firefox和IE系列的相关区别整理 1.浏览器内核 Firefox采用Gecko内核,这是Mozilla基金会开发的一个网页排版引擎,它实现了最新的Web标准,同时支持HTML5和CSS3等新技术。 IE系列的内核则不断更新,IE6采用的是Trident内核,IE7和IE8采用Trident 2.0(也称为MSHTML),IE9~IE11采用Triden…

    css 2023年6月9日
    00
  • JS实现图片局部放大或缩小的方法

    当我们需要展示一张图片,常常需要提供局部放大或缩小的功能,以便用户能够更好地查看细节。下面是实现JavaScript图片局部放大或缩小的方法: 实现方法 实现图片局部放大或缩小的方法有多种,以下是两种示例: 示例1:鼠标悬停局部放大 首先需要在HTML中定义一个图片元素,并设置一个容器元素将其包裹起来。 接下来,我们需要通过JavaScript获取图片和容器…

    css 2023年6月10日
    00
  • css实现中间文字两边横线效果

    要实现中间文字两边横线的效果,可以使用CSS中的伪元素 ::before 和 ::after,以及border-bottom实现。具体的实现方式如下: 首先需要在HTML中添加需要添加效果的元素,例如下面的代码,我们在h1标签中添加示例文本: <h1>This is an example text</h1> 然后,在CSS中为该元素添…

    css 2023年6月10日
    00
  • css外部样式加载Link与import的区别

    介绍“CSS外部样式加载Link与import的区别” 在CSS样式表的开发中,我们经常会通过Link或Import来引入外部样式,但是它们之间有很大的不同,具体表现在以下方面: 引入方式不同 加载顺序不同 优先级存在差别 下面将详细介绍这三方面内容。 引入方式不同 Link是通过HTML中的link标签来引入CSS文件,通常有以下形式: <link …

    css 2023年6月9日
    00
  • angularjs实现时间轴效果的示例代码

    下面就是“angularjs实现时间轴效果的示例代码”的完整攻略。 介绍 时间轴是一种常见的页面元素,可以用于展示时间流逝的进程。本文将介绍如何使用AngularJS实现时间轴效果。 步骤 1. 构建HTML模板 我们首先需要构建HTML模板,用于展示时间轴中的内容。示例中我们使用如下的HTML结构,其中.timeline代表整个时间轴,.timeline_…

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