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

yizhihongxing

下面是详细讲解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日

相关文章

  • table表格某一td内容太多导致样式混乱的解决方案

    当一个<td>单元格中的内容过多时,可能会导致整个表格的样式混乱,这通常是因为文本换行、单元格内部宽度过小等原因造成的。下面提供两种解决方案: 方案一:使用CSS属性“word-break” word-break属性可以指定一个元素内部单词如何被断开换行,从而避免单词长到导致单元格内部宽度过大或者被挤出整个表格的情况。可以将该属性添加到<t…

    css 2023年6月10日
    00
  • css(display,float,position)深入理解

    CSS(display, float, position)深入理解 一、display属性 display 属性用于控制 HTML 元素的显示方式。它有以下常用的取值: block :元素以块级格式显示,元素宽度默认为整个父元素宽度,在不设置 width 的情况下,元素会自动把剩余的空间填满; inline :元素以行内格式显示,元素宽度默认为包含的内容宽度…

    css 2023年6月9日
    00
  • Vue如何使用CSS自定义变量

    Vue如何使用CSS自定义变量 Vue可以使用CSS自定义变量来定义全局的颜色、字体等样式,方便开发者在不同的组件中使用相同的样式。本攻略将详细讲解Vue如何使用CSS自定义变量,包括在Vue中定义和使用CSS自定义变量的方法,以及两个示例说明。 1. 在Vue中定义CSS自定义变量 在Vue中定义CSS自定义变量,可以在全局的CSS文件中定义,也可以在组件…

    css 2023年5月18日
    00
  • CSS页面布局中HTML结构化

    当我们在进行CSS页面布局时,HTML结构化的清晰和合理是非常重要的。这意味着我们应该将我们的页面标记成语义正确的HTML元素,并以正确的方式嵌套它们。以下是CSS页面布局中HTML结构化的完整攻略: 1. 分解你的网站并对其进行规划 在开始编写HTML代码之前,您应该先花些时间规划您的网站外观。如果您已有设计图,先将其细分为版块并确定每个版块的内容。如无,…

    css 2023年6月9日
    00
  • jquery 层次选择器siblings与nextAll的区别介绍

    当我们需要选择某个元素的兄弟元素时,jQuery层次选择器sibling和nextAll都可以帮助我们实现目标,但它们之间还是存在一些区别的。 1. siblings选择器 siblings选择器是选择目标元素的所有同级兄弟元素。使用语法如下: $(selector).siblings(filter); 其中,selector表示选择器表达式,filter为…

    css 2023年6月9日
    00
  • css 设置全屏背景图片

    要在CSS中设置全屏背景图片,可以遵循以下4个步骤: 1.将背景图片设置为CSS属性background-image的值。 2.将背景大小设置为cover,这样它将覆盖整个屏幕。 3.将背景位置设置为中心以保证图片在屏幕中间,即设置background-position属性值为center。 4.确保HTML和Body元素的高度被设置为100%。 下面是具体…

    css 2023年6月9日
    00
  • Vue项目中关于全局css的处理

    在Vue项目中处理全局css,有以下几种常见的方法: 1. 使用全局样式表 可以通过在<head>标签中引入全局样式表来实现全局css处理。在Vue Cli的脚手架中,在src目录下创建一个assets文件夹,用于存放全局css文件。然后在public/index.html文件中添加全局样式表的引用: <head> <link …

    css 2023年6月10日
    00
  • css样式优先级及层叠的顺序排序探讨

    下面是关于“CSS样式优先级及层叠的顺序排序探讨”的完整攻略。 什么是CSS的层叠和优先级? CSS层叠的原理是将多个样式作用于同一元素时,将不同来源的样式进行比较,决定哪个样式具有最高的优先级。 CSS样式的优先级由以下3个要素决定,优先级从高到低分别是: !important:拥有最高的优先级; 行内样式:直接在标签内部使用style属性定义的样式; 选…

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