jquery实现图片切换代码

下面我将提供一个完整的jquery实现图片切换的攻略。

步骤一:HTML结构

首先需要创建一个HTML结构,例如:

<div class="slideshow">
  <img src="img1.jpg" alt="Image 1" class="active">
  <img src="img2.jpg" alt="Image 2">
  <img src="img3.jpg" alt="Image 3">
  <img src="img4.jpg" alt="Image 4">
</div>

这里我们创建了一个包含4张图片的图片轮播器,其中第一张图片默认为激活状态,其他图片默认为隐藏状态。

步骤二:CSS样式

接下来为轮播器设置CSS样式,例如:

.slideshow {
  position: relative;
  height: 400px;
}
.slideshow img {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  margin: auto;
  max-width: 100%;
  max-height: 100%;
  opacity: 0;
  transition: opacity 0.5s ease-in-out;
}
.slideshow img.active {
  opacity: 1;
}

这里我们将轮播器容器设置为相对定位,每张图片设置为绝对定位,并通过opacity属性控制图片的显示和隐藏。我们同时为.active类设置了不透明度为1,确保当前激活的图片被显示出来。

步骤三:jQuery代码

最后编写jQuery代码来控制图片切换:

$(document).ready(function() {
  //自动播放
  setInterval(function() {
    //获取当前激活图片和下一张图片
    var activeImage = $('.slideshow img.active');
    var nextImage = activeImage.next();

    //如果当前激活图片是最后一张,则将下一张图片设置为第一张
    if (nextImage.length === 0) {
      nextImage = $('.slideshow img:first-child');
    }

    //将下一张图片设置为激活状态,并且将当前激活图片设置为隐藏状态
    activeImage.removeClass('active');
    nextImage.addClass('active');
  }, 3000); //每3秒钟自动切换一张图片

  //手动切换
  $('.slideshow').on('click', function() {
    //获取当前激活图片和下一张图片
    var activeImage = $('.slideshow img.active');
    var nextImage = activeImage.next();

    //如果当前激活图片是最后一张,则将下一张图片设置为第一张
    if (nextImage.length === 0) {
      nextImage = $('.slideshow img:first-child');
    }

    //将下一张图片设置为激活状态,并且将当前激活图片设置为隐藏状态
    activeImage.removeClass('active');
    nextImage.addClass('active');
  });
});

这段代码实现了两种切换方式:自动切换和手动点击切换。在自动切换中,我们使用setInterval函数每隔3秒钟自动切换一张图片。在手动切换中,我们使用jQuery的on事件绑定函数,当轮播器被点击时切换到下一张图片。

示例

下面提供示例展示这段代码的运行效果:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title>jQuery图片切换</title>
    <style>
      .slideshow {
        position: relative;
        height: 400px;
      }
      .slideshow img {
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        margin: auto;
        max-width: 100%;
        max-height: 100%;
        opacity: 0;
        transition: opacity 0.5s ease-in-out;
      }
      .slideshow img.active {
        opacity: 1;
      }
    </style>
  </head>
  <body>
    <div class="slideshow">
      <img src="https://picsum.photos/id/1015/600/400" alt="Image 1" class="active">
      <img src="https://picsum.photos/id/1016/600/400" alt="Image 2">
      <img src="https://picsum.photos/id/1018/600/400" alt="Image 3">
      <img src="https://picsum.photos/id/1021/600/400" alt="Image 4">
    </div>
    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
    <script>
      $(document).ready(function() {
        setInterval(function() {
          var activeImage = $('.slideshow img.active');
          var nextImage = activeImage.next();
          if (nextImage.length === 0) {
            nextImage = $('.slideshow img:first-child');
          }
          activeImage.removeClass('active');
          nextImage.addClass('active');
        }, 3000);
        $('.slideshow').on('click', function() {
          var activeImage = $('.slideshow img.active');
          var nextImage = activeImage.next();
          if (nextImage.length === 0) {
            nextImage = $('.slideshow img:first-child');
          }
          activeImage.removeClass('active');
          nextImage.addClass('active');
        });
      });
    </script>
  </body>
</html>

上述示例展示了一张集成了jQuery实现图片切换功能的轮播图。当页面加载完成后,图片轮播器默认会自动切换图片,并且可以通过手动方式点击该轮播图来进行切换(默认切换时间为3秒)。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:jquery实现图片切换代码 - Python技术站

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

相关文章

  • 关于table的width:100%和margin导致溢出

    关于table的width:100%和margin导致溢出的问题通常是因为没有正确理解table默认的box-sizing属性造成的,下面是完整攻略。 了解table的默认box-sizing属性 table 是一个特殊的 HTML 标签,它默认的 box-sizing 属性是 border-box,而非一般的 content-box,这意味着 table …

    css 2023年6月10日
    00
  • 用js实现before和after伪类的样式修改的示例代码

    要用js实现before和after伪类的样式修改,需要先获取到对应的元素,然后通过添加类名或直接修改元素的style属性来实现样式的修改。 下面是一个实现before伪类修改文本内容的例子: 首先,在CSS中定义一个:before伪元素,并赋予它一个content属性和一些样式: div:before { content: "注意:";…

    css 2023年6月10日
    00
  • 绝对定位元素被遮挡的解决方法

    绝对定位元素被遮挡是一个常见的CSS布局问题。本文将为大家详细讲解该问题的解决方法。 问题原因 绝对定位元素(position: absolute)从文档流中脱离,并且是相对于其最近的定位祖先(类似于position: relative)进行定位的。如果该定位祖先没有正确地定位或设置了z-index属性,则可能会导致绝对定位元素被其他元素遮挡。 解决方法 使…

    css 2023年6月9日
    00
  • CSS3制作漂亮的照片墙的实现代码

    下面是CSS3制作漂亮的照片墙的完整攻略: 1.实现原理 照片墙的实现原理主要依赖于CSS3中的一些属性,如column-count、column-gap、transform、transition和box-shadow等,其中: column-count:用于设置元素在多列中进行分布。 column-gap:用于设置列与列之间的间隔。 transform:用…

    css 2023年6月11日
    00
  • 微信小程序 滚动选择器(时间日期)详解及实例代码

    下面就为大家详细讲解微信小程序中的滚动选择器(时间日期)的相关知识及实例代码,包括使用步骤、代码实现以及注意事项等内容。 一、滚动选择器介绍 滚动选择器在小程序中可以用来让用户从一组可选项中进行选择。它提供了一种非常方便的选择方式,不仅适用于时间日期的选择,而且也适用于其他类型的选择。 在小程序中,时间日期选择器是通过 picker 组件实现的。picker…

    css 2023年6月9日
    00
  • CSS3 特效范例整理

    CSS3 特效范例整理 简介 CSS3 是前端开发中非常重要的一部分,它提供了很多强大的功能,使得网页设计更加丰富多彩。在这篇文章中,我们将整理 CSS3 的一些实用特效范例,帮助大家更好地了解,使用 CSS3 来优化网页设计。 目录 CSS3 边框特效 CSS3 渐变特效 CSS3 动画特效 CSS3 边框特效 CSS3 提供了一些非常有用的边框特效。以下…

    css 2023年6月9日
    00
  • IE中div被视频遮住(用embed来内嵌视频)的解决方法

    IE中div被视频遮住(用embed来内嵌视频)的解决方法 当我们在使用 IE 浏览器进行网页浏览时,可能会遇到 div 被视频遮住的问题。在内嵌视频时,我们通常使用 embed 标签,这在大多数浏览器中都不会出现问题,但在 IE 中却容易出现遮盖问题。下面,我们就针对这个问题提供两种解决方案。 方案一:利用 wmode 参数 在使用 embed 标签时,我…

    css 2023年6月10日
    00
  • 详解Angular2表单-模板驱动的表单(Template-Driven Forms)

    详解Angular2表单-模板驱动的表单(Template-Driven Forms) 在 Angular2 中,表单是一个常用的元素,我们经常通过表单来收集用户的数据。Angular2 提供了两种方式处理表单:模板驱动的表单和响应式表单。本文将详细讲解模板驱动的表单。 模板驱动的表单 模板驱动的表单使用模板来处理表单,这意味着我们在 HTML 中定义表单,…

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