js实现轮播图的完整代码

下面是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日

相关文章

  • JavaScript 学习笔记(六)

    JavaScript 学习笔记(六)主要介绍了函数的使用,包括函数的定义、调用以及函数的参数和返回值。 函数的定义与调用 函数是一段执行特定任务的代码块,可以多次调用。在 Javascript 中,函数定义的语法如下: function functionName(argument1, argument2, …) { // 函数体 return value…

    JavaScript 2023年6月11日
    00
  • JS实用案例之输入智能提示(打字机输出效果)

    下面是对“JS实用案例之输入智能提示(打字机输出效果)”进行详细讲解的完整攻略。 1. 概述 “JS实用案例之输入智能提示(打字机输出效果)”是一个JS实用案例,它通过在用户输入时展示智能提示等方法,提高了网站的用户交互体验。本文将介绍该案例的详细实现方法。 2. 技术要点 JavaScript HTML CSS 3. 实现过程 3.1. 编写HTML和CS…

    JavaScript 2023年5月28日
    00
  • JavaScript门道之标准库

    JavaScript 标准库是指由 ECMAScript 提供的可在 Web 应用程序中直接使用的库。它包含一组全局对象,例如 Object,Array,Date 和 Error,并提供了一组通用的函数,例如 parseInt 和 parseFloat 等。JavaScript 标准库是在 JavaScript 运行时环境中自动加载的,因此不需要额外下载或引…

    JavaScript 2023年5月19日
    00
  • javascript学习笔记(八) js内置对象

    当我们说到 JavaScript 时,我们通常指的是这门语言所提供的内置对象。JavaScript 内置对象是在脚本编写时自动创建的对象。在这个笔记中我们将介绍 JavaScript 的一些内置对象,例如 Object,Array,Date,RegExp,Math 等。 Object 对象 Object对象是JavaScript中最基本的对象。Object对…

    JavaScript 2023年5月18日
    00
  • js统计页面的来访次数实现代码

    要实现 js 统计页面来访次数,需要用到以下步骤: 创建一个用来记录访问次数的变量 首先,我们需要创建一个变量来储存网页的访问次数。这个计数器可以使用本地存储(localStorage)来保存,保证每次刷新页面访问次数不会被重置。 // 初始化访问次数为0 var pageViewCount = 0; // 在本地存储中查找是否有访问次数 if (local…

    JavaScript 2023年6月11日
    00
  • require.js的用法详解

    下面就“require.js的用法详解”的完整攻略进行讲解。 1. 什么是require.js Require.js是一个JavaScript模块化管理工具,可以使得我们在编写代码时更好地管理模块的依赖关系,提高代码的可读性和可维护性。使用require.js的最大好处就是可以将 JavaScript 代码分解成多个模块,让它们以依赖树的形式进行加载。在使用…

    JavaScript 2023年5月27日
    00
  • JS、jquery实现几分钟前、几小时前、几天前等时间差显示效果的代码实例分享

    下面是详细讲解“JS、jquery实现几分钟前、几小时前、几天前等时间差显示效果的代码实例分享”的攻略。 1. 确定时间差 在实现几分钟前、几小时前、几天前等时间差显示效果之前,首先需要确定时间差。通常我们可以通过获取当前时间和要计算的时间之间的毫秒数,然后将其转换为对应的时间差。 var now = new Date().getTime(); // 当前时…

    JavaScript 2023年5月27日
    00
  • 微信小程序获取当前位置的详细步骤

    为了在微信小程序中获取当前位置,可以通过以下详细步骤来实现: 1.在小程序的 app.json 文件中添加地理位置权限,包括 scope.userLocation。示例代码如下: { "pages": [ "pages/index/index" ], "window": { "naviga…

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