jQuery实现图片渐入渐出切换展示效果

下面我就为你详细讲解一下jQuery实现图片渐入渐出切换展示效果的完整攻略。

一、前置知识

在学习本篇攻略之前,请先了解以下基本知识:

  • jQuery基本语法;
  • CSS过渡效果。

二、攻略步骤

1. HTML结构

首先,我们需要构建一个基本的HTML结构。这里以图片轮播为例,HTML结构如下:

<div class="slider">
  <img src="img1.jpg" alt="">
  <img src="img2.jpg" alt="">
  <img src="img3.jpg" alt="">
  <img src="img4.jpg" alt="">
</div>

其中,.slider是轮播图容器,.slider img是轮播图图片标签。

2. CSS样式

其次,我们需要为轮播图容器和图片添加一些基本的CSS样式。在这里,我们选择使用CSS过渡效果来实现图片的渐入渐出切换。CSS代码如下:

.slider {
  position: relative;
  width: 100%;
  height: 400px;
  overflow: hidden;
}

.slider img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  transition: opacity .5s ease-in-out;
}

.slider img.active {
  opacity: 1;
}

其中,.sliderposition属性设置为relative,并设置宽度和高度,同时将overflow属性设置为hidden,以便控制图片显示区域的大小。.slider imgposition属性设置为absolute,并设置宽度和高度为100%,同时将opacity属性设置为0,用于控制图片的透明度。.slider img.active表示当前显示的图片,它的opacity属性设置为1,用于实现图片的渐入渐出效果。其中,transition属性控制图片的过渡效果,.5s表示过渡时间为0.5秒,ease-in-out表示缓动函数,即动画效果。

3. JavaScript代码

最后,我们需要使用jQuery完成图片的切换效果。首先,在页面加载完成后,将第一张图片设置为当前显示的图片:

$(document).ready(function() {
  $(".slider img:first-child").addClass("active");
});

接下来,设置图片轮播的定时器,每隔一定时间切换一张图片:

setInterval(function() {
  var active = $(".slider img.active");
  if (active.next().length) {
    active.next().addClass("active");
  } else {
    $(".slider img:first-child").addClass("active");
  }
  active.removeClass("active");
}, 5000);

其中,setInterval()方法用于设置定时器,第一个参数表示定时器的回调函数,第二个参数表示定时器的时间间隔。回调函数中,首先获取当前显示的图片,如果当前图片的后面还有图片,则将后面的图片设为当前显示的图片;否则,将第一张图片设为当前显示的图片。最后,将当前显示的图片的.active类删除,将下一张图片的.active类添加,实现图片的渐入渐出效果。

4. 示例演示

下面,我为你演示两个完整的示例。

示例一:基本图片轮播

<style>
.slider {
  position: relative;
  width: 100%;
  height: 400px;
  overflow: hidden;
}

.slider img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  transition: opacity .5s ease-in-out;
}

.slider img.active {
  opacity: 1;
}
</style>

<div class="slider">
  <img src="https://picsum.photos/id/100/900/400" alt="">
  <img src="https://picsum.photos/id/200/900/400" alt="">
  <img src="https://picsum.photos/id/300/900/400" alt="">
  <img src="https://picsum.photos/id/400/900/400" alt="">
</div>

<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.js"></script>
<script>
$(document).ready(function() {
  $(".slider img:first-child").addClass("active");

  setInterval(function() {
    var active = $(".slider img.active");
    if (active.next().length) {
      active.next().addClass("active");
    } else {
      $(".slider img:first-child").addClass("active");
    }
    active.removeClass("active");
  }, 3000);
});
</script>

示例二:带下方小圆点导航的图片轮播

<style>
.slider {
  position: relative;
  width: 100%;
  height: 400px;
  overflow: hidden;
}

.slider img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  transition: opacity .5s ease-in-out;
}

.slider img.active {
  opacity: 1;
}

.slider-nav {
  position: absolute;
  bottom: 20px;
  left: 50%;
  transform: translateX(-50%);
}

.slider-nav span {
  display: inline-block;
  width: 10px;
  height: 10px;
  margin: 0 10px;
  border-radius: 50%;
  background-color: #ccc;
  cursor: pointer;
}

.slider-nav span.active {
  background-color: #f00;
}
</style>

<div class="slider">
  <img src="https://picsum.photos/id/100/900/400" alt="">
  <img src="https://picsum.photos/id/200/900/400" alt="">
  <img src="https://picsum.photos/id/300/900/400" alt="">
  <img src="https://picsum.photos/id/400/900/400" alt="">
</div>

<div class="slider-nav">
  <span class="active"></span>
  <span></span>
  <span></span>
  <span></span>
</div>

<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.js"></script>
<script>
$(document).ready(function() {
  $(".slider img:first-child").addClass("active");
  $(".slider-nav span:first-child").addClass("active");

  var count = $(".slider img").length;

  setInterval(function() {
    var active = $(".slider img.active");
    var activeNav = $(".slider-nav span.active");

    if (active.next().length) {
      active.next().addClass("active");
      activeNav.next().addClass("active");
    } else {
      $(".slider img:first-child").addClass("active");
      $(".slider-nav span:first-child").addClass("active");
    }
    active.removeClass("active");
    activeNav.removeClass("active");

    if ($(".slider-nav span.active").index() == count - 1) {
      $(".slider-nav span:first-child").addClass("active");
    }
  }, 3000);

  $(".slider-nav span").click(function() {
    $(".slider-nav span").removeClass("active");
    $(this).addClass("active");

    $(".slider img").removeClass("active");
    $(".slider img").eq($(this).index()).addClass("active");
  });
});
</script>

这两个示例展示了基本的图片轮播和带下方小圆点导航的图片轮播,你也可以根据自己的需求进行修改和扩展。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:jQuery实现图片渐入渐出切换展示效果 - Python技术站

(0)
上一篇 2023年5月18日
下一篇 2023年5月18日

相关文章

  • jQWidgets jqxMaskedInput readOnly属性

    jQWidgets jqxMaskedInput readOnly属性详解 jQWidgets是一个基于jQuery的UI组件库,提供了丰富UI组件工具包。jqxMaskedInput是其中之一。本文将详细介绍jqxMaskedInput的readOnly属性,包括用法、语法和示例。 readOnly属性的语法 jqxMaskedInput的readOnly…

    jquery 2023年5月10日
    00
  • 详解jQuery的表单验证插件–Validation

    关于jQuery的表单验证插件–Validation,以下是完整攻略。 1. Validation简介 Validation是一个基于jQuery的表单验证插件,用于验证用户提交的表单是否符合规定的格式和内容。它可以帮助开发者简化表单验证的流程,减少代码量,提高开发效率。Validation支持多种验证规则,如必填、邮箱、电话、数字等常见验证方式。同时,它…

    jquery 2023年5月28日
    00
  • jQWidgets jqxGauge LinearGauge disable()方法

    jQWidgets jqxGauge LinearGauge disable()方法 jQWidgets是一个基于jQuery的UI组件库,提供了丰富的UI组件和工具,包括格、图、日历、菜单等。jqxGauge和jqxLinearGauge是jQWidgets中的两个组件,用于显示仪表盘和线性仪表盘。这两个件都提供了disable()方法,用于禁用组件。 d…

    jquery 2023年5月9日
    00
  • jQWidgets jqxMaskedInput val() 方法

    jQWidgets jqxMaskedInput val() 方法详解 jQWidgets是一个基于jQuery的UI组件库,提供了丰富UI组件工具包。jqxMaskedInput是其中之一。本文将详细介绍jqxMaskedInput的val()方法,包括用法、语法和示例。 val() 方法的语法 jqxMaskedInput的val()方法用于获取或设置输…

    jquery 2023年5月10日
    00
  • jQWidgets jqxListBox bindingComplete事件

    jQWidgets jqxListBox bindingComplete事件详解 jQWidgets是一个基于jQuery的UI组件库,提供了丰富UI组件工具包。jqxListBox是其中一,本文将详细介绍jqxListBox的bindingComplete事件,包括定义、语法和示例。 bindingComplete事件定义 jqxListBox的bindi…

    jquery 2023年5月10日
    00
  • 如何使用jQuery删除一个事件处理程序

    要使用jQuery删除一个事件处理程序,需遵循以下步骤: 选择需要删除事件处理程序的元素 使用 off() 方法删除事件处理程序 验证事件处理程序是否被成功删除 下面是更为详细的步骤和示例: 1. 选择需要删除事件处理程序的元素 首先,需要知道事件处理程序绑定在哪个元素上。在jQuery中,我们可以使用任何元素选择器来找到对应元素。例如,选择一个id为”bu…

    jquery 2023年5月12日
    00
  • JQuery UI的拖拽功能实现方法小结

    我来简要介绍一下实现JQuery UI的拖拽功能的方法。 1. 引入JQuery UI库 首先要在html中引入JQuery和JQuery UI库文件,可以通过CDN,可以下载到本地后引入。 <!– 引入 JQuery –> <script src="https://cdn.bootcdn.net/ajax/libs/jque…

    jquery 2023年5月28日
    00
  • jQuery change()方法

    jQuery change()方法是用于在元素的值发生改变时触发事件的方法。该方法可以用于添加值改变事件处理程序,以便在用户更改元素的值时执行某些操作。 以下是jQuery change()方法的详细攻略: 语法 $(selector).change(function) 参数 function:必需。规定当元素的值发生改变时要运行的函数。 示例1:显示警告框…

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