jquery实现简单的banner轮播效果【实例】

下面是详细讲解jquery实现简单的banner轮播效果的攻略。

1. 编写基础html文件

首先,在html文件中引入必要的css和js文件,编写基础的html文件结构如下:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Banner轮播效果</title>
  <link rel="stylesheet" href="css/reset.css">
  <link rel="stylesheet" href="css/style.css">
</head>
<body>
  <div class="banner">
    <ul class="img-box">
      <li><img src="images/1.jpg" alt=""></li>
      <li><img src="images/2.jpg" alt=""></li>
      <li><img src="images/3.jpg" alt=""></li>
      <li><img src="images/4.jpg" alt=""></li>
      <li><img src="images/5.jpg" alt=""></li>
    </ul>
    <ul class="dot-box">
      <li class="active"></li>
      <li></li>
      <li></li>
      <li></li>
      <li></li>
    </ul>
    <a href="javascript:void(0);" class="prev-btn"></a>
    <a href="javascript:void(0);" class="next-btn"></a>
  </div>
  <script src="js/jquery-3.6.0.min.js"></script>
  <script src="js/script.js"></script>
</body>
</html>

其中,我们创建了一个名为banner的div,它包含了两个ul列表(一个是图片列表,另一个是点列表)。同时,1.jpg ~ 5.jpg 是轮播图的图片资源,我们使用a标签来作为上一页和下一页的按钮。这是一个基础的html文件结构。

2. css样式

接下来,我们来编写样式。我们先默认隐藏图片列表中除了第一张图片以外的所有图片,同时隐藏上一页和下一页按钮。

.banner .img-box li:not(:first-child) {
  display: none;
}

.banner a { 
  display: none;
}

3. 实现轮播效果

我们可以利用css3的切换效果和jquery中的定时器来实现轮播效果。首先,我们需要创建一个定时器,通过更改active类的位置来切换图片。

var index = 0; // 当前显示的图片索引

function showImg() {
  $(".img-box li").eq(index).fadeIn().siblings().fadeOut();
  $(".dot-box li").eq(index).addClass("active").siblings().removeClass("active");
}
var timer = setInterval(function() {
  index++;
  if (index > 4) {
    index = 0;
  }
  showImg();
}, 2000);

在上面的代码中,我们首先定义了一个showImg函数,用于切换图片和点的选中状态。然后,我们创建了一个名为timer的变量,并使用setInterval函数来启动定时器。在定时器的回调函数中,我们先将index加1,然后判断是否超过图片总数,如果超过则将index设为0,同时调用showImg函数来切换图片和点的选中状态。最后,我们在文档加载完成后启动定时器:

$(document).ready(function() {
  showImg();
});

4. 添加上一页和下一页按钮

接下来,我们为上一页和下一页按钮添加点击事件。当点击上一页按钮时,我们需要将index减1,并判断是否到头,如果到头则将index设为图片总数-1,然后调用showImg函数。当点击下一页按钮时,我们需要将index加1,并判断是否超过图片总数,如果超过则将index设为0,然后调用showImg函数。

$(".prev-btn").click(function() {
  index--;
  if (index < 0) {
    index = 4;
  }
  showImg();
});

$(".next-btn").click(function() {
  index++;
  if (index > 4) {
    index = 0;
  }
  showImg();
});

5. 实现点列表功能

最后,我们需要为点列表添加点击事件。当点击某一个点时,我们需要将index设为当前点的索引,然后调用showImg函数。

$(".dot-box li").click(function() {
  index = $(this).index();
  showImg();
});

到这里,我们就完成了一个简单的banner轮播效果。完整的代码示例可以参考下面的链接。

示例一:https://codesandbox.io/s/jquery-banner-1-9s592

示例二:https://codesandbox.io/s/jquery-banner-2-m3j0u

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:jquery实现简单的banner轮播效果【实例】 - Python技术站

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

相关文章

  • css美化input file按钮的代码方法

    下面是详细讲解“css美化input file按钮的代码方法”的完整攻略。 简介 <input type=”file”> 元素在HTML中用于上传文件,长相不甚美观。但是,我们可以通过CSS来美化它。 步骤 隐藏原来的文件上传按钮 创建一个用来代替原来的按钮的新元素 将新元素与原来的文件上传按钮进行关联 下面是示例代码: 例1:自定义上传按钮背景…

    css 2023年6月10日
    00
  • 使用JavaScript和CSS实现文本隔行换色的方法

    下面我将详细讲解“使用JavaScript和CSS实现文本隔行换色的方法”的完整攻略。 一、使用CSS实现文本隔行换色 使用CSS的伪类选择器:nth-child来设置每个li元素的背景颜色,达到隔行换色的效果。 示例代码如下: li:nth-child(odd) { background-color: #f2f2f2; } li:nth-child(eve…

    css 2023年6月10日
    00
  • vue使用v-for实现hover点击效果

    下面是关于如何在Vue中使用v-for实现hover点击效果的完整攻略。 需求分析 我们需要在Vue项目中使用v-for指令实现hover和点击效果,即鼠标移到某个区块上时,该区块会显示特定的样式效果,同时单击区块时,触发某些操作。 解决方案 实现该需求的主要思路是使用Vue的数据绑定和事件绑定功能。我们可以使用以下方式来达到目标: 在Vue组件中使用v-f…

    css 2023年6月9日
    00
  • html css 控制div或者table等固定在指定位置的实现方法

    要让div或者table等固定在指定位置,需要使用CSS的position属性。 position属性 CSS的position属性控制元素在文档中的定位方式,并允许你使用top、right、bottom和left属性进行微调。 值: 值 描述 static 默认值。元素通常在文档中按照其自然位置进行排列 relative 相对定位。元素相对于其正常位置进行…

    css 2023年6月9日
    00
  • vue和react等项目中更简单的实现展开收起更多等效果示例

    实现展开收起更多等效果示例在Vue和React等项目中都可以采用下面提到的方法。 1. 使用Vue的v-if和v-else指令 Vue的v-if和v-else指令可以很方便地实现展开收起更多的效果。 示例代码如下: <template> <div> <p v-if="!isExpanded">{{ co…

    css 2023年6月10日
    00
  • jQuery获取CSS样式中的颜色值的问题,不同浏览器格式不同的解决办法

    要获取元素的CSS样式中的颜色值,可以使用jQuery的css()方法。但是在不同的浏览器下,返回的颜色值可能不同,这需要采用不同的解决办法。 解决方案一:使用rgb格式的颜色值 在所有浏览器中,可以使用rgb格式表示颜色值,因此我们可以使用jquery的css()方法获取元素的颜色值,然后将其转换为rgb格式。 示例代码: // 获取元素的背景颜色值 va…

    css 2023年6月9日
    00
  • Vue 中驼峰命名与短横线分割命名的用法及区别

    接下来我来详细讲解 Vue 中使用驼峰命名和短横线分割命名的用法及区别。 Vue 中支持使用驼峰命名和短横线分割命名,两种命名方式的主要区别是:驼峰命名方式将每个单词的首字母大写,而短横线分割命名方式每个单词之间用横线分割。 在 Vue 模板中,驼峰命名方式和短横线分割命名方式都是可以使用的,但是在写组件时应该选择一种风格,并保持一致性,以便于代码的阅读和维…

    css 2023年6月9日
    00
  • CSS3中的Transition过度与Animation动画属性使用要点

    让我们来详细讲解一下“CSS3中的Transition过渡与Animation动画属性使用要点”的完整攻略。 Transition 过渡 概述 CSS3 的过渡(transition)属性可以为元素的属性添加过渡效果。当元素从一种样式变换为另一种样式时,过渡效果会平滑的呈现出来。过渡不是立刻执行的,而是在一个指定的时间段内逐渐实现。 transition 属…

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