当前位置: 首页 > news >正文

JavaScript轮播图

HTML部分

<div class="box" onmouseover="over()" onmouseout="noover()"><img src="./img/zuo.png" alt="" class="left_arrow" onclick="left_last()"><img src="./img/yy.png" alt="" class="right_arrow" onclick="right_word()"><div id="carousel"></div><div class="round"></div></div>

JavaScript部分:携带注释哟家人们

<script>let data; // 声明一个变量用于存储从服务器获取的数据let k = 0; // 当前显示的图片索引let imgwidth; // 图片宽度let imgheight; // 图片高度let inter; // 用于存储定时器的变量// 创建一个XMLHttpRequest对象用于发送请求let xhr = new XMLHttpRequest();// 设置请求方式和请求地址xhr.open('get', './js/banner.json', true);// 发送请求xhr.send();// 接收返回的响应数据xhr.onreadystatechange = function() {if (xhr.readyState == 4 && xhr.status == 200) {let text = xhr.responseText;// 将获取的文本数据转换为JSON格式data = JSON.parse(text);// 调用展示图片的函数console.log(data); // 打印获取到的数据到控制台// 调用展示图片的函数show(data);}};// 获取轮播图容器元素let carsoule = document.getElementById('carousel');function show(data) {let str = ``; // 声明一个空字符串用于存储要渲染的图片标签let sti = ``; // 声明一个空字符串用于存储轮播图指示器的标签for (let i = 0; i < data.imge.length; i++) {// 渲染图片到页面中str += `<img src="${data.imge[i]}" alt="" class="img_carousel">`;// 根据索引,渲染轮播图指示器if (i == 0) {sti += `<div style="background-color: aqua;"></div>`;} else {sti += `<div></div>`;}}// 将最后一张图片再次添加到轮播图容器中,用于实现循环播放str += `<img src="${data.imge[0]}" alt="">`;// 将图片和轮播图指示器渲染到页面中document.getElementById('carousel').innerHTML = str;document.getElementsByClassName('round')[0].innerHTML = sti;// 获取第一张图片的宽度imgwidth = document.getElementsByClassName('img_carousel')[0].offsetWidth;// 调用轮播功能noover();}// 获取轮播图指示器的所有子元素let dots = document.getElementsByClassName('round')[0].children;// 下一张图片函数function next() {k++; // 索引加1,显示下一张图片carsoule.style.marginLeft = "-" + imgwidth * k + "px"; // 设置轮播图容器的左边距carousel.style.transition = "margin-left 1s"; // 设置过渡效果// 如果达到最后一张图片,回到第一张图片if (k == data.imge.length) {setTimeout(function() {carousel.style.transition = "none"; // 去掉过渡效果k = 0; // 将索引设置为0,回到第一张图片carousel.style.marginLeft = `-${k * 100}%`; // 设置轮播图容器的左边距}, 1000);}// 根据索引,设置轮播图指示器的样式if (k < dots.length) {dots[k].style.background = "aqua"; // 当前图片指示器背景颜色为aquadots[k - 1].style.background = "pink"; // 上一张图片指示器背景颜色为pink} else if (k == dots.length) {dots[0].style.background = "aqua"; // 第一张图片指示器背景颜色为aquadots[k - 1].style.background = "pink"; // 最后一张图片指示器背景颜色为pinkk = 0; // 将索引设置为0,回到第一张图片}}// 自动轮播函数function noover() {inter = setInterval(next, 2000); // 每2秒调用一次next函数,实现自动轮播}// 鼠标悬停在轮播图上,停止自动轮播function over() {clearInterval(inter); // 清除定时器,停止自动轮播}// 获取右箭头元素let right = document.getElementsByClassName('right_arrow')[0];// 点击右箭头切换到下一张图片function right_word() {right.onclick = null; // 防止连续点击next(); // 调用下一张图片函数// 1.5秒后恢复右箭头的点击事件setTimeout(function() {right.onclick = right_word;}, 1500);}// 获取左箭头元素// let left = document.getElementsByClassName('left_arrow')[0];// 点击左箭头切换到上一张图片function left_last() {k--; // 索引减1,显示上一张图片// 如果索引小于0,回到最后一张图片if (k < 0) {k = dots.length; // 将索引设置为指示器数量,显示最后一张图片carousel.style.transition = ""; // 去掉过渡效果carsoule.style.marginLeft = "-" + imgwidth * k + "px"; // 设置轮播图容器的左边距// 0.01秒后,过渡效果生效,显示倒数第二张图片setTimeout(function() {k--; // 索引减1,显示倒数第二张图片carousel.style.transition = "all 1s"; // 添加过渡效果carsoule.style.marginLeft = "-" + imgwidth * k + "px"; // 设置轮播图容器的左边距dots[k].style.background = "aqua"; // 当前图片指示器背景颜色为aquadots[0].style.background = "pink"; // 第一张图片指示器背景颜色为pink}, 10);} else {carousel.style.transition = "all 1s"; // 添加过渡效果carsoule.style.marginLeft = "-" + imgwidth * k + "px"; // 设置轮播图容器的左边距dots[k].style.background = "aqua"; // 当前图片指示器背景颜色为aquadots[k + 1].style.background = "pink"; // 下一张图片指示器背景颜色为pink}}</script>

相关文章:

JavaScript轮播图

HTML部分 <div class"box" onmouseover"over()" onmouseout"noover()"><img src"./img/zuo.png" alt"" class"left_arrow" onclick"left_last()"><img src"./img/yy.png" al…...

修复SteamUI.dll加载失败的指南,快速修复failed to load steamui.dll

在使用Steam平台进行游戏下载、安装和运行时&#xff0c;可能会遇到一些系统错误&#xff0c;比如“failed to load steamui.dll”。这个错误通常意味着Steam的用户界面库文件steamui.dll出现了问题。本文将详细介绍steamui.dll文件的相关信息以及如何修复这一问题。 一.什么是…...

PCL Local Surface Patches 关键点提取

目录 一、算法原理1、算法原理2、 参考文献二、代码实现三、结果展示本文由CSDN点云侠原创,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫与GPT。 一、算法原理 1、算法原理 主曲率是某一点局部形状的体现,Local Surface Patches 关键点检测法…...

Vue与ASP.NET Core Web Api设置localhost与本地ip地址皆可访问

Vue的设置 我们创建并启动一个Vue项目&#xff0c;如下所示&#xff1a; 打开cmd&#xff0c;输入ipconfig查询本地ip地址&#xff1a; 想通过本地ip地址访问&#xff0c;把localhost改成本地ip地址&#xff0c;发现打不开&#xff1a; 这是因为Vue项目默认只有localhost&…...

Android 线程池的面试题 线程线程池面试题

1.为什么要用线程池 降低资源消耗&#xff1a;通过复用线程&#xff0c;降低创建和销毁线程的损耗。 提高响应速度&#xff1a;任务不需要等待线程创建就能立即执行。 提高线程的可管理性&#xff1a;使用线程池可以进行统一的分配、调优和监控。 2. 线程池执行流程&#xff08…...

Flink时间和窗口

目录 时间语义 水位线&#xff08;Watermarks&#xff09; 并行流中的水位线 窗口 滚动窗口—Tumbling Windows 滑动窗口—Sliding Windows 会话窗口—Session Windows 全局窗口—Global Windows 例子 时间语义 如图所示&#xff0c;由事件生成器&#xff08;Event Pr…...

LLaMA模型量化方法优化:提高性能与减小模型大小

LLaMA模型量化方法优化:提高性能与减小模型大小 LLaMA模型量化方法优化:提高性能与减小模型大小引言新增量化方法性能评估7B模型13B模型 结果分析结论 LLaMA模型量化方法优化:提高性能与减小模型大小 引言 在大型语言模型(LLM)的应用中,模型大小和推理速度一直是关键的挑战。…...

前端CSS实现卡片抽奖效果

引言 在网页设计中&#xff0c;互动元素能够显著提升用户体验&#xff0c;吸引用户的注意力。其中&#xff0c;卡片抽奖效果常用于营销活动、游戏或娱乐场景&#xff0c;通过随机展示不同的卡片来增加趣味性和参与度。本文将详细介绍如何使用HTML和CSS来实现一个简单的卡片抽奖…...

Java在for循环中修改集合

前天看到一篇文章什么&#xff1f;for循环也会出问题&#xff1f;&#xff0c;里面涉及到在for循环中修改集合&#xff0c;想起来自己刚入行的时候就碰到过类似的问题&#xff0c;于是复现了一下文章中的问题&#xff0c;并试验了其它在循环中修改集合的方法。 底层原理参考什…...

Java小白入门到实战应用教程-运算符详解

Java小白入门到实战应用教程-运算符 上节回顾 在上节的内容中我们了解了变量和基本数据类型的内容&#xff0c;现在回顾一下上节课的内容。 声明变量的语法为&#xff1a; 数据类型 变量名&#xff1b; 其中在java中一共有8中基本数据类型&#xff0c;分别是&#xff1a;b…...

secureCRT同时在所有已打开窗口执行命令、mac-os下使用的SecureCRT版本 以及 SecureCRT一段时间不操作没有响应的问题

一、secureCRT命令行工具一次性同时在所有已打开窗口执行命令 公司的服务器比较多&#xff0c;最近因为opcache&#xff0c;上线发布后&#xff0c;需要重启所有的WEB服务器上的php。目前使用的jenkins发布&#xff0c;不过账号安全问题&#xff0c;给jenkins的账号权限受限不能…...

增材制造与智能制造关系

在撰写的增材制造技术与装备书籍中有着明确的描述&#xff0c;增材制造是智能制造的典型范例&#xff0c;是智能制造“类”的实例化过程。这种借助于计算机编程面向对象思想的解释可以更全面的理解增材制造和智能制造的关系。增材制造实例具备了智能制造类的属性&#xff0c;智…...

Google Test 学习笔记(简称GTest)

文章目录 一、介绍1.1 介绍1.2 教程 二、使用2.1 基本使用2.1.1 安装GTest &#xff08;下载和编译&#xff09;2.1.2 编写测试2.1.3 运行测试2.1.4 高级特性2.1.5 调试和分析 2.2 源码自带测试用例2.3 TEST 使用2.3.1 TestCase的介绍2.3.2 TEST宏demo1demo2 2.3.3 TEST_F宏2.3…...

不可变集合

定义&#xff1a;就是集合中的内容不可以被修改。 如何获取不可变集合&#xff1f; List、Set、Map类中提供的静态方法of可用来获取不可变集合。 特点&#xff1a;一旦创建完成只可以进行查询&#xff0c;不可以增删改。 细节&#xff1a;Map集合中的of方法只能添加10个键值…...

景区AR导航营销系统:技术解决方案与实施效益分析

随着旅游市场的竞争日益激烈&#xff0c;景区需要不断创新以吸引游客。景区 AR 导航将虚拟画面与现实场景相结合&#xff0c;为游客提供了更加直观、生动的导航服务。对于景区而言&#xff0c;这一创新技术无疑是吸引游客目光、提升景区知名度的有力武器。通过独特的 AR 导航体…...

MATLAB的基础知识

matlab的基本小常识 1. 在每行语句后面加上英文分号表示不在命令行窗口显示运行结果。 a 3; a 5 2. 多行注释快捷键&#xff0c;CTRLR。 3. 取消多行注释&#xff0c;CTRLT。 4. 清空工作区的所有变量使用clear。 5. 清空命令行窗口的所有变量使用clc。 6. clc和clear一起使…...

Redis-高级实战案例

文章目录 Redis集群崩溃时如何保证秒杀系统高可用1. 冗余与备份2. 故障检测与自动切换3. 降级策略4. 数据一致性5. 客户端缓存6. 异常处理与通知7. 测试与演练8. 服务降级与回滚Redis主从切换导致库存同步异常以及超卖问题主从切换导致的库存同步异常原因:解决方案:秒杀链路中…...

d3d12.dll 文件缺失如何解决?五种修复丢失问题的方法

d3d12.dll 文件缺失如何解决&#xff1f;它为什么会不见呢&#xff1f;今天&#xff0c;我们将探讨 d3d12.dll 文件的重要性、原因以及丢失时的解决策略。本文将全面介绍 d3d12.dll 文件&#xff0c;并提供五种修复丢失问题的方法。 d3d12.dll文件是什么的详细介绍 d3d12.dll …...

Linux下如何设置系统定时任务

在Linux系统中&#xff0c;用户可以使用cron工具来设置定时任务。cron是一个守护进程&#xff0c;用于在指定的时间间隔执行指定的命令或脚本。下面是在Linux系统中设置系统定时任务的步骤。 使用crontab命令编辑定时任务列表&#xff1a; crontab -e该命令会打开一个文本编辑…...

【React】JSX 实现列表渲染

文章目录 一、基础语法1. 使用 map() 方法2. key 属性的使用 二、常见错误和注意事项1. 忘记使用 key 属性2. key 属性的选择 三、列表渲染的高级用法1. 渲染嵌套列表2. 条件渲染列表项3. 动态生成组件 四、最佳实践 在 React 开发中&#xff0c;列表渲染是一个非常常见的需求。…...

业务系统对接大模型的基础方案:架构设计与关键步骤

业务系统对接大模型&#xff1a;架构设计与关键步骤 在当今数字化转型的浪潮中&#xff0c;大语言模型&#xff08;LLM&#xff09;已成为企业提升业务效率和创新能力的关键技术之一。将大模型集成到业务系统中&#xff0c;不仅可以优化用户体验&#xff0c;还能为业务决策提供…...

逻辑回归:给不确定性划界的分类大师

想象你是一名医生。面对患者的检查报告&#xff08;肿瘤大小、血液指标&#xff09;&#xff0c;你需要做出一个**决定性判断**&#xff1a;恶性还是良性&#xff1f;这种“非黑即白”的抉择&#xff0c;正是**逻辑回归&#xff08;Logistic Regression&#xff09;** 的战场&a…...

在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能

下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能&#xff0c;包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...

使用分级同态加密防御梯度泄漏

抽象 联邦学习 &#xff08;FL&#xff09; 支持跨分布式客户端进行协作模型训练&#xff0c;而无需共享原始数据&#xff0c;这使其成为在互联和自动驾驶汽车 &#xff08;CAV&#xff09; 等领域保护隐私的机器学习的一种很有前途的方法。然而&#xff0c;最近的研究表明&…...

[ICLR 2022]How Much Can CLIP Benefit Vision-and-Language Tasks?

论文网址&#xff1a;pdf 英文是纯手打的&#xff01;论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误&#xff0c;若有发现欢迎评论指正&#xff01;文章偏向于笔记&#xff0c;谨慎食用 目录 1. 心得 2. 论文逐段精读 2.1. Abstract 2…...

1.3 VSCode安装与环境配置

进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件&#xff0c;然后打开终端&#xff0c;进入下载文件夹&#xff0c;键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...

跨链模式:多链互操作架构与性能扩展方案

跨链模式&#xff1a;多链互操作架构与性能扩展方案 ——构建下一代区块链互联网的技术基石 一、跨链架构的核心范式演进 1. 分层协议栈&#xff1a;模块化解耦设计 现代跨链系统采用分层协议栈实现灵活扩展&#xff08;H2Cross架构&#xff09;&#xff1a; 适配层&#xf…...

Keil 中设置 STM32 Flash 和 RAM 地址详解

文章目录 Keil 中设置 STM32 Flash 和 RAM 地址详解一、Flash 和 RAM 配置界面(Target 选项卡)1. IROM1(用于配置 Flash)2. IRAM1(用于配置 RAM)二、链接器设置界面(Linker 选项卡)1. 勾选“Use Memory Layout from Target Dialog”2. 查看链接器参数(如果没有勾选上面…...

相机Camera日志分析之三十一:高通Camx HAL十种流程基础分析关键字汇总(后续持续更新中)

【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:有对最普通的场景进行各个日志注释讲解,但相机场景太多,日志差异也巨大。后面将展示各种场景下的日志。 通过notepad++打开场景下的日志,通过下列分类关键字搜索,即可清晰的分析不同场景的相机运行流程差异…...

【python异步多线程】异步多线程爬虫代码示例

claude生成的python多线程、异步代码示例&#xff0c;模拟20个网页的爬取&#xff0c;每个网页假设要0.5-2秒完成。 代码 Python多线程爬虫教程 核心概念 多线程&#xff1a;允许程序同时执行多个任务&#xff0c;提高IO密集型任务&#xff08;如网络请求&#xff09;的效率…...