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 jqxSortable延迟属性

    下面是关于jQWidgets jqxSortable延迟属性的详细攻略。 什么是jQWidgets jqxSortable延迟属性? jQWidgets jqxSortable是一个jQuery插件,用于创建可排序的列表或表格。它具有多种属性和方法,其中延迟属性是其一个重要的特性。延迟属性可以设置拖拽开始的延迟时间,以免出现意外拖拽行为。 如何使用jQWid…

    jquery 2023年5月12日
    00
  • jQWidgets jqxListBox hasThreeStates属性

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

    jquery 2023年5月10日
    00
  • jQuery Validation Engine验证控件调用外部函数验证的方法

    jQuery Validation Engine 是一个强大的表单验证插件,可以非常简单地验证表单的合法性。它不但支持多种验证规则,并且还允许我们为每个表单元素应用多个验证规则。 需要调用外部函数进行验证时,可以使用以下方法: 自定义验证规则方法validate[funcName]。 我们可以定义一个函数名为funcName的方法,方法接受两个参数:fiel…

    jquery 2023年5月27日
    00
  • jQWidgets jqxTree dragEnd事件

    当用户拖动 jQWidgets jqxTree 组件中的节点并释放鼠标按钮时,dragEnd 事件将被触发。以下是 jQWidgets jqxTree dragEnd 事件的完整攻略: jQWidgets jqxTree dragEnd 事件 dragEnd 事件在用户拖动 jQWidgets jqxTree 组件中的节点并释放鼠标按钮时触发。 语法 $(‘…

    jquery 2023年5月11日
    00
  • jQuery UI Tooltips追踪选项

    以下是关于 jQuery UI Tooltips 追踪选项的详细攻略: jQuery UI Tooltips 追踪选项 可以使用追踪选项来控制工具提示小部件是否应该跟随鼠标移动。 语法 $(selector).tooltip({ track: true }); 参数 track: 一个布尔值,指示工具提示小部件是否应该跟随鼠标移动。默认为 false。 示例…

    jquery 2023年5月11日
    00
  • jquery ui dialog里调用datepicker的问题

    当我们使用jQuery UI Dialog弹出窗口时,若需要在弹出窗口中使用日历控件datepicker,则需要注意下面的几点: 步骤一:引入jQuery UI和jQuery UI Datepicker 首先要在头部引入jQuery和jQuery UI库,并且添加jQuery UI Datepicker的CSS和JS文件。 <head> <…

    jquery 2023年5月28日
    00
  • jQWidgets jqxDropDownList clear()方法

    jQWidgets jqxDropDownList clear()方法详解 jQWidgets是一个基于jQuery的UI组件库,提供了丰富UI组件和工具包。jqxDropDownList是Widgets组件现下组件。本文将详细介绍jqxDropDownList的clear()方法,包括作用、语法和示例。 clear()方法的基本语法 clear()方法的基…

    jquery 2023年5月10日
    00
  • jQuery中:focus选择器用法实例

    jQuery中的:focus选择器用于选取处于焦点状态的元素,常用于表单元素的验证和交互效果中。 :focus选择器语法 通过以下语法来使用:focus选择器: $(":focus") 上述语法将选取当前处于焦点状态的元素。 实例说明 示例1:定位表单焦点 通过使用:focus选择器,我们可以根据当前焦点所在的表单元素,来实现对该元素进行…

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