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日

相关文章

  • js中toString()和String()区别详解

    下面是详细的攻略: 标题 1. JS中toString()方法 在JS中,每个基本数据类型都内置了一个toString()方法。这个方法可以把当前对象转换为一个字符串形式,然后返回结果。toString()方法通常不需要传入参数,但是可以接受一个表示基数的参数,用于指定输出数字的基数。 2. String()函数 String()函数是JS中的一个函数,在没…

    JavaScript 2023年5月28日
    00
  • JavaScript encodeURI 和encodeURIComponent

    JavaScript提供了两个用于URL编码的方法:encodeURI()和encodeURIComponent()。 encodeURI() encodeURI()方法用于将整个URL编码,包括特殊字符,但不包括以下字符:/、?、&、=和#。编码后的字符是%xx,其中xx是字符的ASCII十六进制值。 下面是一个使用encodeURI()的示例: …

    JavaScript 2023年5月19日
    00
  • JavaScript事件对象event用法分析

    下面是关于JavaScript事件对象(event)的详细解析: 一、什么是JavaScript事件对象(event) 在JavaScript中,事件是当HTML文档中发生某些特定行为时所发生的结果。比如用户单击了一个按钮、鼠标移动到某一个元素上等交互行为。这些都可以被JavaScript捕捉到,并进行相应的处理。在这些事件中,事件对象(event)是事件发…

    JavaScript 2023年6月10日
    00
  • 3种js实现string的substring方法

    实现string的substring方法有多种方法,这里介绍其中的3种JS实现方式,分别是: 使用slice方法 使用substr方法 使用substring方法 1. 使用slice方法 slice()方法可以接收两个参数,分别是开始位置和结束位置,返回从开始位置到结束位置的字符串。 例如: let str = "Hello World&quot…

    JavaScript 2023年5月28日
    00
  • JavaScript中Number的对象解析

    JavaScript中Number的对象解析 在JavaScript中,Number是一种基本数据类型,同时也是一个对象类型。在进行数值计算时,我们通常使用Number类型。在这篇攻略中,我们将详细了解Number对象的解析和使用。 Number对象的创建 我们可以使用以下方法创建一个Number对象: var num = new Number(value)…

    JavaScript 2023年5月27日
    00
  • JavaScript跨域调用基于JSON的RESTful API

    下面为您详细讲解“JavaScript跨域调用基于JSON的RESTful API”的完整攻略。 一、什么是跨域调用? 跨域调用指的是在浏览器端,由于安全限制,JavaScript无法直接请求不同域名、不同端口号或不同协议的数据资源。比如,我们的网站a.com无法直接通过JavaScript获取b.com的数据资源。 二、解决跨域调用问题的方法 在我们解决跨…

    JavaScript 2023年5月27日
    00
  • JavaScript数组操作总结

    JavaScript数组操作总结 什么是JavaScript数组 JavaScript数组是一种可以存储一组有序数据的容器,它可以存储任何类型的数据并可以通过索引来访问。在JavaScript中创建一个数组非常简单,只需要使用方括号[]将数据项封装起来,每个数据项之间使用逗号分隔。 let arr = [1, ‘hello’, true, 3.14]; 数组…

    JavaScript 2023年5月17日
    00
  • JavaScript canvas实现动态点线效果

    下面就是详细讲解 JavaScript canvas 实现动态点线效果的完整攻略。 简介 Canvas 是 HTML5 中一个非常重要的特性,它可以用 JavaScript 来绘制图像,包括各种形状、文本、图片以及动画等。我们可以通过 Canvas 实现各种炫酷的效果,其中动态点线效果就是其中的一种。 实现过程 1. 构建 Canvas 环境 首先,我们需要…

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