js 自动播放的实例代码

下面是关于JS自动播放的实例代码的攻略。

什么是JS自动播放?

JS自动播放通常指网页上的轮播图、视频以及幻灯片等元素自动播放,用户可以通过点击按钮、鼠标移入移出等操作来控制播放、暂停以及跳转。在网页设计中,JS自动播放是一个非常常见的功能。

实现JS自动播放的步骤

步骤一:编写HTML结构

首先需要编写HTML结构,例如:

<div class="slide-container">
  <div class="slide-item"></div>
  <div class="slide-item"></div>
  <div class="slide-item"></div>
</div>

步骤二:编写CSS样式

为了实现滑动的效果,需要对CSS进行设置,例如:

.slide-container {
  width: 800px;
  height: 400px;
  position: relative;
  overflow: hidden;
}
.slide-item {
  width: 800px;
  height: 400px;
  position: absolute;
  top: 0;
  left: 0;
  display: none;
}

步骤三:编写JS代码

  1. 第一种方法:使用setInterval()函数

setInterval()函数用于按照一定的时间间隔周期性地执行一个函数。我们可以使用它来实现自动播放功能。

let currentIndex = 0;
const items = document.querySelectorAll('.slide-item');
const len = items.length;
const interval = 2000; // 每2秒自动播放一次

const slide = () => {
  items[currentIndex].style.display = 'none'; // 隐藏当前元素
  currentIndex = (currentIndex + 1) % len; // 计算下一张要显示的元素的索引
  items[currentIndex].style.display = 'block'; // 显示下一张元素
}

let timer = setInterval(slide, interval); // 开始自动播放

// 当鼠标移动到容器上时,暂停自动播放
document.querySelector('.slide-container').addEventListener('mouseover', () => clearInterval(timer));

// 当鼠标移出容器时,恢复自动播放
document.querySelector('.slide-container').addEventListener('mouseout', () => timer = setInterval(slide, interval));

  1. 第二种方法:使用setTimeout()函数

setTimeout()函数用于在一定的时间之后执行一个函数。我们可以使用它来实现自动播放功能。

let currentIndex = 0;
const items = document.querySelectorAll('.slide-item');
const len = items.length;
const interval = 2000; // 每2秒自动播放一次

const slide = () => {
  items[currentIndex].style.display = 'none'; // 隐藏当前元素
  currentIndex = (currentIndex + 1) % len; // 计算下一张要显示的元素的索引
  items[currentIndex].style.display = 'block'; // 显示下一张元素

  setTimeout(slide, interval); // 继续自动播放
}

slide(); // 开始自动播放

// 当鼠标移动到容器上时,暂停自动播放
document.querySelector('.slide-container').addEventListener('mouseover', () => clearTimeout(timer));

// 当鼠标移出容器时,恢复自动播放
document.querySelector('.slide-container').addEventListener('mouseout', () => slide());

一个示例应用

下面是一个简单的示例,它实现了一个基本的轮播图功能。

HTML代码:

<div class="slide-container">
  <div class="slide-item" style="background-color: red;"></div>
  <div class="slide-item" style="background-color: blue;"></div>
  <div class="slide-item" style="background-color: green;"></div>
  <div class="slide-item" style="background-color: yellow;"></div>
</div>

CSS代码:

.slide-container {
  width: 600px;
  height: 300px;
  position: relative;
  overflow: hidden;
}

.slide-item {
  width: 600px;
  height: 300px;
  position: absolute;
  top: 0;
  left: 0;
  display: none;
}

JS代码:

let currentIndex = 0;
const items = document.querySelectorAll('.slide-item');
const len = items.length;
const interval = 2000;

const slide = () => {
  items[currentIndex].style.display = 'none';
  currentIndex = (currentIndex + 1) % len;
  items[currentIndex].style.display = 'block';
}

let timer = setInterval(slide, interval);

document.querySelector('.slide-container').addEventListener('mouseover', () => clearInterval(timer));
document.querySelector('.slide-container').addEventListener('mouseout', () => timer = setInterval(slide, interval));

另一个示例应用

下面是另一个示例,它实现了一个基本的幻灯片功能。

HTML代码:

<div class="slideshow-container">
  <div class="slideshow-item" style="background-image: url('image1.jpg');"></div>
  <div class="slideshow-item" style="background-image: url('image2.jpg');"></div>
  <div class="slideshow-item" style="background-image: url('image3.jpg');"></div>
</div>

CSS代码:

.slideshow-container {
  width: 600px;
  height: 300px;
  position: relative;
  overflow: hidden;
}

.slideshow-item {
  width: 600px;
  height: 300px;
  position: absolute;
  top: 0;
  left: 0;
  background-position: center;
  background-size: cover;
  opacity: 0;
  transition: opacity 1s ease-in-out;
}

.slideshow-item.active {
  opacity: 1;
}

JS代码:

let currentIndex = 0;
const items = document.querySelectorAll('.slideshow-item');
const len = items.length;
const interval = 2000;

const slideshow = () => {
  items[currentIndex].classList.remove('active');
  currentIndex = (currentIndex + 1) % len;
  items[currentIndex].classList.add('active');
}

let timer = setInterval(slideshow, interval);

在这个示例中,我们使用了CSS的transition属性来实现淡入淡出的效果。同时,我们还使用了classList来动态地添加和移除‘active’类,以改变元素的外观。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:js 自动播放的实例代码 - Python技术站

(0)
上一篇 2023年5月28日
下一篇 2023年5月28日

相关文章

  • jQWidgets jqxDataTable pageSizeChanged事件

    jQWidgets 是一个流行的 JavaScript UI 库,提供了许多可定制的 UI 组件。其中一个组件是 jqxDataTable,它是一个用于显示和编辑表格数据的件。jqxDataTable 提供多个事件,其中之一是 pageSizeChanged。下面是关于 jqxDataTable 的 pageSizeChanged 事件的详攻: pageSi…

    jquery 2023年5月11日
    00
  • jQuery toggleClass()的应用实例

    下面是关于“jQuery toggleClass()的应用实例”的详细攻略。 1. toggleClass()方法简介 toggleClass()方法是jQuery库中一个用来添加或删除指定class的方法。其语法为: $(selector).toggleClass(classname,function(index,currentclass)); 其中,se…

    jquery 2023年5月12日
    00
  • jquery更换文章内容与改变字体大小代码

    如何使用 jQuery 更换文章内容与改变字体大小 使用 jQuery 来更换文章内容或改变字体大小是一种非常方便并且常见的技术, 常被用于网页开发中,下面将给您详细讲解这个过程。 更换文章内容 在 HTML文档中,使用一个元素指定需要更换内容的位置。 <div id="content"><p>这里是要修改的内容。…

    jquery 2023年5月27日
    00
  • webpack搭建vue环境时报错异常解决

    确保webpack及其相关loader的版本与vue相兼容 首先,打开webpack.config.js文件(如果不存在该文件则需先创建),检查webpack的版本是否符合vue所需的版本:webpack 4.x.x+对应vue 2.x.x版本,webpack 5.x.x+对应vue 3.x.x版本。如果版本不匹配,则需更新webpack至对应版本。 然后,…

    jquery 2023年5月27日
    00
  • jQWidgets jqxEditor可编辑属性

    jQWidgets jqxEditor可编辑属性详解 jQWidgets是一个基于jQuery的UI组件库,提供了丰富UI组件和工具包。jqxEditor是Widgets组件于实现富文本编辑器的组件。本文将详细介绍jqxEditor的editable属性,包括其作用、语法和示例。 jqxEditor editable属性的基本语法 jqxEditor的edi…

    jquery 2023年5月10日
    00
  • JQuery优缺点分析说明

    下面是关于”JQuery优缺点分析说明”的完整攻略: 一、JQuery是什么 JQuery是一个JavaScript库,它主要用于简化在HTML文档中的操作、事件处理、动画效果以及Ajax交互。JQuery使得开发者可以更加方便快捷地完成各种常见的Web开发任务,它已经成为了Web应用程序开发中非常重要的一部分。 二、JQuery的优点 2.1 良好的浏览器…

    jquery 2023年5月27日
    00
  • jQuery 使用手册(一)

    以下是详细讲解“jQuery 使用手册(一)”的完整攻略: jQuery 使用手册(一) 什么是 jQuery? jQuery 是一种流行的 JavaScript 库,用于简化 HTML 文档的遍历、事件处理、动画和 Ajax 操作。它被设计为易于使用的操作 DOM 元素的工具。 如何使用 jQuery? 在使用 jQuery 之前,我们需要先引入 jQue…

    jquery 2023年5月27日
    00
  • jQuery event.isPropagationStopped()方法

    jQuery event.isPropagationStopped()方法是用于检查事件是否已经被停止传播的方法。该方法可以用于在事件处理程序中检查事件是否已经停止传播以便据需要执行其他。 以下是jQuery event.isPropagationStopped()方法的详细攻略: 语法 event.isPropagationStopped() 参数 无 示…

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