js实现轮播图的完整代码

yizhihongxing

下面是JavaScript实现轮播图的完整攻略,包含两条示例说明:

一、代码实现步骤

  1. 选中需要轮播的元素和轮播的图片,通过DOM操作获取其元素节点。
    js
    let slider = document.querySelector(".slider");
    let img = document.querySelectorAll(".slider img");

  2. 设置轮播图片的宽度和高度。
    js
    let imgWidth = img[0].clientWidth;
    let imgHeight = img[0].clientHeight;

  3. 根据图片数量,设置轮播图外层容器的宽度。
    js
    slider.style.width = imgWidth * img.length + "px";

  4. 设置初始值和计时器。
    ```js
    let currentIndex = 0;
    let timer = null;

function sliderStart() {
timer = setInterval(() => {
// 判断当前是否轮播到最后一张
if (currentIndex === img.length - 1) {
currentIndex = 0;
slider.style.left = 0;
}
currentIndex++;
slider.style.left = -currentIndex * imgWidth + "px";
}, 2000);
}

sliderStart();
```

  1. 添加鼠标移入和移出事件控制轮播图的停止和继续。
    ```js
    slider.addEventListener("mouseover", () => {
    clearInterval(timer);
    });

slider.addEventListener("mouseout", () => {
sliderStart();
});
```

  1. 通过事件委托,为小圆点添加点击事件控制轮播图的切换。
    js
    let pagination = document.querySelector(".pagination");
    pagination.addEventListener("click", (event) => {
    // 判断点击的元素是否是小圆点
    if (event.target.tagName.toLowerCase() === "li") {
    // 获取小圆点的索引
    let index = [...pagination.children].indexOf(event.target);
    currentIndex = index;
    slider.style.left = -currentIndex * imgWidth + "px";
    }
    });

二、示例说明

示例1:无缝轮播

以下是一段完整的JavaScript代码,实现了无缝轮播功能。效果为:当轮播到最后一张图片时,再次轮播时,会回到第一张图片,实现无缝轮播。

let slider = document.querySelector(".slider");
let img = document.querySelectorAll(".slider img");

let imgWidth = img[0].clientWidth;
let imgHeight = img[0].clientHeight;

slider.style.width = imgWidth * img.length + "px";

let currentIndex = 0;
let timer = null;

function sliderStart() {
  timer = setInterval(() => {
    // 判断当前是否轮播到最后一张
    if (currentIndex === img.length - 1) {
      currentIndex = 0;
      slider.style.left = 0;
    }
    currentIndex++;
    slider.style.left = -currentIndex * imgWidth + "px";
  }, 2000);
}

sliderStart();

slider.addEventListener("mouseover", () => {
  clearInterval(timer);
});

slider.addEventListener("mouseout", () => {
  sliderStart();
});

示例2:带有分页器的轮播

以下是一段完整的JavaScript代码,实现了带有分页器的轮播功能。效果为:点击分页器上的小圆点,可以切换到对应的轮播位置。

let slider = document.querySelector(".slider");
let img = document.querySelectorAll(".slider img");

let imgWidth = img[0].clientWidth;
let imgHeight = img[0].clientHeight;

slider.style.width = imgWidth * img.length + "px";

let currentIndex = 0;
let timer = null;

function sliderStart() {
  timer = setInterval(() => {
    if (currentIndex === img.length - 1) {
      currentIndex = 0;
      slider.style.left = 0;
    }
    currentIndex++;
    slider.style.left = -currentIndex * imgWidth + "px";
  }, 2000);
}

sliderStart();

slider.addEventListener("mouseover", () => {
  clearInterval(timer);
});

slider.addEventListener("mouseout", () => {
  sliderStart();
});

let pagination = document.querySelector(".pagination");
pagination.addEventListener("click", (event) => {
  if (event.target.tagName.toLowerCase() === "li") {
    let index = [...pagination.children].indexOf(event.target);
    currentIndex = index;
    slider.style.left = -currentIndex * imgWidth + "px";
  }
});

以上就是JavaScript实现轮播图的完整代码攻略。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:js实现轮播图的完整代码 - Python技术站

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

相关文章

  • asp.net动态添加js文件调用到网页的方法

    ASP.NET 动态添加 JS 文件调用到网页主要有以下几个步骤: 首先,在 ASP.NET 页面中添加 ScriptManager 控件。这个控件可以将页面上的 JS 文件或脚本框架统一管理。 示例代码如下: <asp:ScriptManager ID="ScriptManager1" runat="server&quo…

    JavaScript 2023年6月11日
    00
  • Js四则运算函数代码

    以下是Js四则运算函数代码的完整攻略: 1. 前置知识 在编写Js四则运算函数之前,需要熟悉Js语言的基础语法,尤其是关于函数定义和调用、变量声明和赋值、条件语句、循环语句等方面的知识。此外,还需要掌握JavaScript的数学运算操作符,例如加法+、减法-、乘法*、除法/等。 2. 实现思路 四则运算函数的实现可以分为以下几个步骤: 1) 从用户输入获取两…

    JavaScript 2023年5月27日
    00
  • JS对象创建的几种方式整理

    JS对象创建的几种方式整理的攻略如下: 1. 对象字面量方式 对象字面量方式是指直接使用 {} 创建对象,使用键值对的方式来描述对象的属性和属性值。示例如下: const person = { name: "Alice", age: 25, sayHi: function() { console.log("Hi, I’m &qu…

    JavaScript 2023年5月27日
    00
  • js定义类的方法示例【ES5与ES6】

    下面是关于“js定义类的方法示例【ES5与ES6】”的完整攻略。 什么是类 在Javascript中,类是一种实现面向对象编程的方式。类定义了一个对象的特征和行为。类是一种模板或者蓝图,可用于创建一个具有相同属性和方法的多个对象。 ES5中定义类 在ES5中,我们使用构造函数来定义一个类。 function Person(name, age) { this.…

    JavaScript 2023年5月27日
    00
  • JS控件的生命周期介绍

    下面我就为你详细讲解一下JS控件的生命周期介绍的完整攻略。 什么是JS控件的生命周期 JS控件的生命周期是指JS控件从实例化到销毁的整个过程,它包括了多个不同的阶段,这些阶段会在特定的时间点被执行,以保证JS控件的正常运行和适应不同的环境。 通常,JS控件的生命周期包括以下阶段: 1.实例化阶段 在这个阶段,JS控件会被实例化,并对其属性进行初始化和赋值。通…

    JavaScript 2023年6月10日
    00
  • JavaScript基础教程之alert弹出提示框实例

    那么让我们详细讲解下JavaScript基础教程中alert弹出提示框实例的完整攻略。 简介 alert() 是 JavaScript 中最常用的弹窗函数,它能够在浏览器中弹出提示框,使用户注意到某些信息。该函数的语法如下: alert(message) 其中,message 参数是需要弹出的信息内容。 使用alert弹出提示框 下面我们来看看alert弹出…

    JavaScript 2023年6月11日
    00
  • JS使用Promise时常见的5个错误总结

    JS使用Promise时常见的5个错误总结 Promise 是 JavaScript 异步编程的重要组成部分,它可以帮助我们更好地处理回调地狱问题,提高代码的可读性和可维护性。但是,在使用 Promise 进行编程时,可能会犯一些常见的错误。本文将总结 Promise 的5个常见错误,以及如何避免这些错误。 1. 没有正确处理 Promise 的错误 在编写…

    JavaScript 2023年5月28日
    00
  • js定时器的使用(实例讲解)

    JS定时器是一种常见的编程工具,可以用于在一定时间间隔内执行一些具体的操作或调用某一函数。使用JS定时器,可以增强网站的交互性和用户体验度。 下面,我们来详细讲解JS定时器的使用步骤和实例讲解。 步骤一:设置定时器 在JavaScript中,使用setInterval()方法可以创建一个定时器。这个方法有两个参数:要运行的函数名和定时器开始运行的时间间隔(单…

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