【JS实战02】轮播图

一:HTML页面结构

1 整体外观

2 HTML结构以及CSS样式

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>.slider {width: 560px;height: 400px;overflow: hidden;}.slider-wrapper {width: 100%;height: 320px;}.slider-wrapper img {width: 100%;height: 100%;display: block;}.slider-footer {/* 上下盒子共占400px */height: 80px;background-color: rgb(100, 67, 68);padding: 12px 12px 0 12px;position: relative;}.slider-footer .toggle {position: absolute;right: 0;top: 12px;display: flex;}.slider-footer .toggle button {margin-right: 12px;width: 28px;height: 28px;appearance: none;border: none;background: rgba(255, 255, 255, 0.1);color: #fff;border-radius: 4px;cursor: pointer;}/* 鼠标移入,按钮变色 */.slider-footer .toggle button:hover {background: rgba(255, 255, 255, 0.2);}.slider-footer p {margin: 0;color: #fff;font-size: 18px;margin-bottom: 10px;}.slider-indicator {margin: 0;padding: 0;list-style: none;display: flex;align-items: center;}.slider-indicator li {width: 8px;height: 8px;margin: 4px;border-radius: 50%;background: #fff;opacity: 0.4;cursor: pointer;}.slider-indicator li.active {width: 12px;height: 12px;opacity: 1;}</style>
</head>
<body><div class="slider"><div class="slider-wrapper"><img src="./images/slider01.jpg" alt="" /></div><div class="slider-footer"><p>对人类来说会不会太超前了?</p><ul class="slider-indicator"><li class="active"></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><div class="toggle"><button class="prev">&lt;</button><button class="next">&gt;</button></div></div></div>
</body>
</html>

二:JS代码实现

1 需求:点击左按钮实现图片跳转

2 实现

//左按钮实现图片向左移动// 1 <0时i=7,跳转至第7张照片const prev = document.querySelector('.prev')const img = document.querySelector('.slider-wrapper img')const p = document.querySelector('.slider-footer p')const color = document.querySelector('.slider-footer')let i = 0prev.addEventListener('click', function () {i--if (i < 0) {i = 7}common()
})

注意:点击左按钮后,将以下需求封装了到common()函数中

// 封装共同函数function common() {img.src = sliderData[i].url//2 实现底部小圆点随着图片移动而移动//排他思想document.querySelector('.slider-indicator .active').classList.remove('active')document.querySelector(`.slider-indicator li:nth-child(${i + 1})`).classList.add('active')// 3 更换显示文字、以及背景颜色p.innerHTML = sliderData[i].titlecolor.style.backgroundColor = sliderData[i].color}

3 需求:实现自动播放效果

4 代码实现:

 //自动播放:调用间歇函数let timer = setInterval(function () {next.click()}, 1000)

利用了间隙函数,以及调用右箭头的点击事件

此处next.click()可以这样理解,next.click = function(){....},看作一个调用一个匿名函数即可

5 需求:鼠标移入、移除图片定时器关、开效果

6 代码实现:

 // 鼠标移入大盒子停止定时器const slider = document.querySelector('.slider')slider.addEventListener('mouseenter', function () {clearInterval(timer)})//鼠标移出大盒子,开启定时器slider.addEventListener('mouseleave', function () {timer = setInterval(function () {next.click()}, 1000)})

三:最终效果gif图

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/846904.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

js之对象、内置对象、获取和操作DOM对象以及相关年会抽奖案例

这里写目录标题 一级目录二级目录三级目录 基础语法04一、对象1.定义2.特点 二、对象的使用1.声明2.由属性和方法组成3.属性4.增删改查5.方法 三、遍历对象四、内置对象1.介绍2.作用3.方法注意&#xff1a;生成任意范围的随机数 五、声明变量注意WebAPIs01一、Web API 基本认知…

HTML:认识HTML与基本语法的学习

前言 HTML&#xff08;超文本标记语言&#xff09;是用于创建网页的标记语言&#xff0c;由一系列标签组成&#xff0c;定义网页中的元素。由蒂姆伯纳斯 - 李于1990年代初发明&#xff0c;最初用于科研机构间共享文档&#xff0c;迅速演变为Web开发基础。无论是电商、博客、新…

力扣1984.数组任选k个数的最小极差

力扣1984.数组任选k个数的最小极差 思路&#xff1a;最终选定的k个数的方案一定可以排序成最大最小放两端的形式 所以将原数组排序 再取k长度的区间 一定能找到与原方案等价的一种方案 class Solution {public:int minimumDifference(vector<int>& nums, int k) {…

2024 年适用于 Mac 的 5 大免费录屏软件

要成为Mac的优秀屏幕录像机&#xff0c;捕获视频的高清质量和易于操作的界面是两个主要重要因素。此外&#xff0c;Mac上的付费屏幕录像机不仅可以输出高质量的屏幕捕获视频。您也可以在免费的视频捕获软件中获得类似的桌面录制服务。因此&#xff0c;如果您不需要以专业的方式…

Python 连接 Access 数据库:深入解析与实用技巧

Python 连接 Access 数据库&#xff1a;深入解析与实用技巧 在数据处理和分析的领域中&#xff0c;Python 凭借其强大的库和框架&#xff0c;成为了众多开发者和数据分析师的首选工具。然而&#xff0c;当涉及到与特定数据库如 Microsoft Access 的连接时&#xff0c;许多用户…

如何把docker里的内容拷贝出来

如何把docker里的内容拷贝出来 要从Docker容器中复制文件或目录出来&#xff0c;可以使用docker cp命令。以下是基本的命令格式和示例&#xff1a; 命令格式&#xff1a; docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH示例&#xff1a; 假设你有一个名为my_container的…

Python定义全局变量:深入剖析与实际应用

Python定义全局变量&#xff1a;深入剖析与实际应用 在Python编程中&#xff0c;全局变量是一个核心概念&#xff0c;它允许我们在函数或方法之外定义变量&#xff0c;并在整个程序范围内进行访问和修改。然而&#xff0c;全局变量的使用并非总是直观或简单的&#xff0c;它涉…

UE5增强输入系统入门

UE4直接在项目设置里设置的轴映射和操作映射在UE5中被标记为废弃&#xff0c;改为使用增强输入系统。 这两天学习了下蓝图和c中增强输入系统的使用&#xff0c;在这里分享一下。 学习使用的模板是第三人称模板(蓝图/c)&#xff0c;代码蓝图都参考的模板。 增强输入系统 UE5…

简单、实用、免费、无广告的图片自由分割工具

一、简介 1、是来自 Github 的一款简单、实用、免费、无广告的图片自由分割工具。它安装包大小在 4.5MB 左右,目前仅支持 Windows 和 Web 平台。 2、基本功能:支持图片自由纵向分割,横向分割,宫格分割,低仿 wps 看图图片分割,分割完成后,打开电脑的下载目录即可查看包含…

python-旋转字符串

问题描述&#xff1a;给定一个字符串&#xff08;以字符串数组的形式&#xff09;和一个偏移量&#xff0c;根据偏移量从左到右地旋转字符数组。 问题示例&#xff1a;输入str”abcdefg”,offset3,输出“efgabcd”。输入str”abcdefg”,offset0,输出“abcdefg”。&#xff08;返…

Python怎么打印:深入探索打印技巧与最佳实践

Python怎么打印&#xff1a;深入探索打印技巧与最佳实践 在Python编程中&#xff0c;打印&#xff08;或输出&#xff09;是一个基础且重要的操作。无论是用于调试、展示结果还是与用户交互&#xff0c;打印都扮演着关键角色。然而&#xff0c;尽管打印看似简单&#xff0c;但…

Python初学者入门:探索编程世界的奇妙之旅

Python初学者入门&#xff1a;探索编程世界的奇妙之旅 在这个信息爆炸的时代&#xff0c;编程技能已经成为一种不可或缺的能力。Python&#xff0c;作为一种简洁、易学的编程语言&#xff0c;成为许多初学者的首选。那么&#xff0c;对于初次接触Python的你&#xff0c;如何开…

clion配置ssh隧道转发 实现远程主机功能

clion配置ssh隧道转发 clion自带的ssh配置只能配置主机和用户名的格式来实现ssh&#xff0c;因此如果需要通过中间设备来访问调试主机的话就无法使用了。 配置ssh隧道的方式有两种&#xff0c;一种是直接配置 ~/.ssh/config 配置文件&#xff0c;一种是使用跳板机工具。clion…

Python热重载调试新利器

你一定遇到过这种情况&#xff1a;Python脚本已经运行&#xff0c;却发现自己忘记打印输出需要记录的信息(比如for循环中打印更多详细信息)。 此时&#xff0c;如若暂停运行的代码&#xff0c;修改补充再重新运行整个代码&#xff0c;尤其对于已经运行数多个小时的模型训练来说…

机械硬盘坏道的文件系统级别的屏蔽方法

从5月中旬无意看到拼夕夕有9.9的320g的小硬盘&#xff0c;于是我就买了几个回来&#xff0c;结果20元老板发给了我7个&#xff01;&#xff01;&#xff01;我个人还是比较惊讶的&#xff0c;难道不值钱到这地步了吗&#xff0c;相当于20元2T硬盘的数据量了&#xff01;我本来打…

生成式 AI——ChatGPT、Dall-E、Midjourney 等算法理念探讨

1.概述 艺术、交流以及我们对现实世界的认知正在迅速地转变。如果我们回顾人类创新的历史&#xff0c;我们可能会认为轮子的发明或电的发现是巨大的飞跃。今天&#xff0c;一场新的革命正在发生——弥合人类创造力和机器计算之间的鸿沟。这正是生成式人工智能。 生成模型正在模…

python替换“${}“占位符为变量,实现读取配置文件

文章目录 背景1、定义正则表达式2、替换变量占位符3、实现功能 背景 使用python编写小工具&#xff0c;有一个配置文件&#xff0c;希望实现类似shell命令的&#xff0c;定义变量并且使用${}或者$来引用。如果有好的建议欢迎讨论。 配置文件示例内容如下: D:\project\test\pr…

K8S为什么弃用Docker:容器生态的演进与未来

引言 Kubernetes&#xff08;K8S&#xff09;自2014年由Google发布以来&#xff0c;已成为容器编排和管理的事实标准。Docker作为容器技术的先驱&#xff0c;曾与Kubernetes紧密合作&#xff0c;提供了容器运行时的基础。然而&#xff0c;随着容器生态的快速发展&#xff0c;K…

IGraph使用实例——线性代数计算(blas)

1 概述 在图论中&#xff0c;BLAS&#xff08;Basic Linear Algebra Subprograms&#xff09;并不直接应用于图论的计算&#xff0c;而是作为一套线性代数计算中通用的基本运算操作函数集合&#xff0c;用于进行向量和矩阵的基本运算。然而&#xff0c;这些基本运算在图论的相…

csrf漏洞与ssrf漏洞

环境&#xff1a;用kali搭建的pikachu靶场 一.CSRF 1.CSRF漏洞简介 跨站请求伪造&#xff08;CSRF&#xff09;漏洞是一种Web应用程序安全漏洞&#xff0c;攻击者通过伪装成受信任用户的请求来执行未经授权的操作。这可能导致用户在不知情的情况下执行某些敏感操作&#xff0…