JavaScript轮播图实现
这个代码创建了一个简单的轮播图,可以通过点击左右箭头或自动播放来切换图片。
<!DOCTYPE html>
<html><head><meta charset="utf-8" /><title>js轮播图练习</title><style>.box {width: 60vw;height: 500px;margin: auto;position: relative;overflow: hidden;}.banner {display: flex;height: 100%;transition: all 3s;}.banner>img {width: 60vw;}.but {width: 100%;height: 40px;position: absolute;top: 240px;display: flex;justify-content: space-between;}/* 箭头样式 */.but div {width: 30px;height: 40px;line-height: 40px;text-align: center;background-color: rgba(0, 0, 0, 0.4);font-size: 20px;color: white;cursor: pointer;}/* 小圆点区域 */.icon {width: 100%;height: 30px;display: flex;justify-content: center;position: absolute;bottom: 0;}.icon>span {width: 10px;height: 10px;border-radius: 100%;background-color: gray;margin-left: 5px;}</style></head><body><!-- 可视区域 --><div class="box" onmouseover="move()" onmouseout="moves()"><!-- 存放图片的容器 --><div class="banner"><img src="" alt="" class="inge" /></div><!-- 箭头区域 --><div class="but"><div class="left" onclick="sport()">←</div><div class="right" onclick="sports()">→ </div></div><!-- 小圆点区域 --><div class="icon"></div></div></body><script>let data;// 定义一个充当下标let k = 0;let dot;let inter; // 定义定时器变量// 获取大图片容器let banner = document.getElementsByClassName('banner')[0];// 获取小圆点区域let round = document.getElementsByClassName('icon')[0];// 获取左右箭头let left = document.getElementsByClassName('left');let right = document.getElementsByClassName('right');let imgwidth;// 获取JSON假数据let shop = new XMLHttpRequest();// json假数据自己写一下,图片名称用的是picshop.open('get', 'js/index.json', true);shop.send();shop.onreadystatechange = function() {if (shop.readyState == 4 && shop.status == 200) {let text = shop.responseText;data = JSON.parse(text);console.log(data);ran();}};// 渲染函数function ran() {let str = '';let roundstr = '';for (let i = 0; i < data.length; i++) {// 字符串拼接图片str += `<img src="${data[i].pic}" class="inge"/>`;// 字符串拼接小圆点指示器roundstr += `<span style="background-color:${i==0?'pink':'gray'}"></span>`}// 添加第一张图片以实现无缝轮播str += `<img src="${data[0].pic}" class="inge"/>`;// 将拼接的图片插入到轮播图长条内容区域banner.innerHTML = str;// 将拼接的小圆点指示器插入到页面中round.innerHTML = roundstr;// 获取图片的宽imgwidth = document.getElementsByClassName('inge')[0].offsetWidth;// 获取小圆点指示器dot = document.getElementsByTagName('span');// 设置定时器inter = setInterval(scrolls, 2000);dot[0].style.backgroundColor = 'pink';}// 图片自动轮播函数function scrolls() {// 增加索引 k,表示当前显示的图片k++;banner.style.transform = `translate(-${k*imgwidth}px)`;banner.style.transition = `transform 0.5s ease`;// 如果 k 超过数据长度,则重置为 0(循环播放)if (k > data.length - 1) {k = 0; // 重置索引dot[k].style.backgroundColor = 'pink';dot[data.length - 1].style.backgroundColor = 'gray';setTimeout(() => {// 设置延迟后将 banner 的位移和过渡效果重置banner.style.transform = `translate(-${k*imgwidth}px)`;banner.style.transition = `none`;}, 500);} else {dot[k].style.backgroundColor = 'pink';dot[k - 1].style.backgroundColor = 'gray';}}// 鼠标移出移入function move() {clearInterval(inter);}function moves() {inter = setInterval(scrolls, 2000);}// 点击左右箭头let throttle = false; // 声明节流function sport() {// 判断如果正在节流则返回if (throttle) return;// 开始节流throttle = true;//清除定时器以避免冲突clearInterval(inter);if (k == 0) {k = 0; // 重置索引dot[k].style.backgroundColor = 'gray';dot[data.length - 1].style.backgroundColor = 'pink';// 将索引设置为数据长度,以便准备显示最后一张图片k = data.length;banner.style.transform = `translate(-${k * imgwidth}px)`; // 向左滑动至最后一张banner.style.transition = `none`; // 移除过渡效果} else {dot[k].style.backgroundColor = 'gray'; // 当前小圆点设为灰色dot[k - 1].style.backgroundColor = 'pink'; // 前一小圆点设为粉色}setTimeout(() => {k--;banner.style.transform = `translate(-${k*imgwidth}px)`; // 更新位移banner.style.transition = `transform 0.5s ease`; // 设置过渡效果}, 10);// 设置定时器,0.5秒后取消setTimeout(() => {throttle = false;}, 500);}// 点击向右移动function sports() {if (throttle) return;throttle = true; // 开始节流clearInterval(inter); // 清除定时器scrolls(); // 调用滚动函数// 设置定时器,0.5秒后取消节流setTimeout(() => {throttle = false;}, 500);}</script>
</html>
JavaScript轮播图,此代码他:
- 实现了切换图片的功能(上一张、下一张、指定索引)。
- 创建了小圆点并更新其状态。
- 实现了自动播放功能,每2秒切换一次图片。
相关文章:
JavaScript轮播图实现
这个代码创建了一个简单的轮播图,可以通过点击左右箭头或自动播放来切换图片。 <!DOCTYPE html> <html><head><meta charset"utf-8" /><title>js轮播图练习</title><style>.box {width: 60vw;height: 500px;m…...
【LLM开源项目】LLMs-开发框架-Langchain-Tutorials-Basics-v2.0
【1】使用LCEL构建简单的LLM应用程序(Build a Simple LLM Application with LCEL) https://python.langchain.com/docs/tutorials/llm_chain/ 如何使用LangChain构建简单的LLM应用程序。功能:将把文本从英语翻译成另一种语言。 实现:LLM调用加上一些提…...
Python 爬取天气预报并进行可视化分析
今天,我们就来学习如何使用 Python 爬取天气预报数据,并用数据可视化的方式将未来几天的天气信息一目了然地展示出来。 在本文中,我们将分三步完成这一任务: 使用 Python 爬取天气数据数据解析与处理用可视化展示天气趋势 让我…...
最左侧冗余覆盖子串
题目描述 给定两个字符串 s1 和 s2 和正整数 k,其中 s1 长度为 n1,s2 长度为 n2。 在 s2 中选一个子串,若满足下面条件,则称 s2 以长度 k 冗余覆盖 s1 该子串长度为 n1 k 该子串中包含 s1 中全部字母 该子串每个字母出现次数…...
性能测试-JMeter(2)
JMeter JMeter断言响应断言JSON断言断言持续时间 JMeter关联正则表达式提取器正则表达式正则表达式提取器 XPath提取器JSON提取器 JMeter属性JMeter录制脚本 JMeter断言 断言:让程序自动判断预期结果和实际结果是否一致 提示: -Jmeter在请求的返回层面有…...
芯课堂 | Synwit_UI_Creator(μgui)平台之图像处理篇
今天小编给大家介绍的是UI_Creator(μgui)平台下关于图像处理的选项。 UI_Creator(μgui)平台图片类控件有图像控件和分级图像控件,均包含以下选项: 1、消除水波纹: 由于16位真彩色(…...
QT C++ 软键盘/悬浮键盘/触摸屏键盘的制作
目录 1、前言 2、界面设计 3、英文、数字的输入 4、符号的输入 5、中文的输入 6、中文拼音库的选择 7、其他 8、结语 1、前言 使用QT C在带显示器的Linux系统 开发板上(树莓派等)编写操作UI界面时,很多时候都需要一个软键盘来输入文字…...
element-ui点击文字查看图片预览功能
今天做一个点击文字查看图片的功能,大体页面长这样子,点击查看显示对应的图片 引入el-image-viewer,点击的文字时候设置图片预览组件显示并传入图片的地址 关键代码 <el-link v-if"scope.row.fileList.length > 0" type&…...
SpringBoot集成Redis使用Cache缓存
使用SpringBoot集成Redis使用Cache缓存只要配置相应的配置类,然后使用Cache注解就能实现 RedisConfig配置 新建RedisConfig配置类 package com.bdqn.redis.config;import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annota…...
【瑞萨RA8D1 CPK开发板】lcd显示
1.8寸lcd使用gpio模拟spi驱动 由于板子引出的接口限制,故使用gpio模拟spi驱动中景园的1.8寸lcd 1.77寸液晶屏 1.8寸TFT LCD SPI TFT彩屏st7735驱动128x160高清屏-淘宝网 (taobao.com) 使用RASC 的gpio配置 根据厂家提供的驱动文件移植 #define LCD_SCLK_Clr() g…...
算法收敛的一些证明方法与案例
证明一个算法收敛通常涉及多个角度,以下是一些常用的方法和示例: 一、方法 1. 数学归纳法 通过数学归纳法证明算法在每一步的输出结果都在收敛范围内。 示例:考虑一个递归算法,假设我们要证明它在每一步中输出的值逐渐接近目标…...
基于vue框架的蛋糕店网上商城740g7(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。
系统程序文件列表 项目功能:用户,店长,商品分类,商品信息,订单投诉,反馈信息 开题报告内容 基于Vue框架的蛋糕店网上商城开题报告 一、项目背景与意义 随着互联网技术的快速发展和普及,电子商务已成为现代商业的重要组成部分。蛋糕作为一种受欢迎的美…...
你真的了解Canvas吗--解密六【ZRender篇】
目录 📚入口 Circle - 图形 Group - 组 事件捕获 - 流程 step - 1 step - 2 总结 这篇文章我们讲讲Circle圆形,Group组的使用以及大家最熟悉又陌生的事件捕获和冒泡在ZRender中的实现,篇幅较长,且听我慢慢分析。 &#x…...
孤独相伴 - 结婚十七年
07年的今天,我和老公请假,去了新加坡的大使馆领证。 17年后的今天,此刻凌晨16分, 这是17年来我第一次这么早写结婚纪念,只是凑巧。 今天的心情莫名其妙。 此刻,两个词出现在我的脑海:孤独 &am…...
json-server,跨域
启动json-serer json-server --watch db.json 注意: db.json为json文件的名称,你自己的文件名叫什么,就启动对应的文件就可以了 启动json-server的时候,必须在你db.json所在的文件夹下进行启动 这样服务器就可以启动成功了&…...
【Conda】修复 Anaconda 安装并保留虚拟环境的详细指南
目录 流程图示1. 下载 Anaconda 安装程序2. 重命名现有的 Anaconda 安装目录Windows 操作系统Linux 操作系统 3. 运行新的 Anaconda 安装程序Windows 操作系统Linux 操作系统 4. 同步原环境使用 robocopy 命令(Windows)使用 rsync 命令(Linux…...
转行高薪 AI 产品经理,快速入门方法在此处
根据《2024年中国AI大模型场景探索及产业应用调研报告》,当前整体AI大模型行业仍然处于萌芽期,但市场规模增速较快。2023年我国AI大模型行业规模达到了147亿元,近三年复合增速高达114%。预计2024年,该市场规模将进一步增长至216亿…...
初识环境变量
初识环境变量 目录: 什么是环境变量常见的环境变量Linux中与环境变量的有关的命令如何获取环境变量环境变量的特点环境变量的作用 1.什么是环境变量 我们在Linux操作系统下,使用指令,比如ls,pwd,cd等等,可以直接使用,…...
成像基础 -- 景深计算
景深计算 景深(Depth of Field, DOF)指的是在摄影中,能够清晰成像的物体前后距离的范围。景深的大小取决于多个因素,包括焦距、光圈值、物距以及相机感光元件的尺寸。 1. 景深的主要参数 焦距( f f f)&a…...
Git中从dev分支恢复master分支
问题 需要从dev分支恢复master分支。之前搞错远程地址了,把master分支搞乱了,现在需要从dev分支恢复代码到master分支。 步骤 git checkout dev # 切换到 dev 分支 git branch -D master # 删除本地 master 分支 git checko…...
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...
智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql
智慧工地管理云平台系统,智慧工地全套源码,java版智慧工地源码,支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求,提供“平台网络终端”的整体解决方案,提供劳务管理、视频管理、智能监测、绿色施工、安全管…...
渗透实战PortSwigger靶场-XSS Lab 14:大多数标签和属性被阻止
<script>标签被拦截 我们需要把全部可用的 tag 和 event 进行暴力破解 XSS cheat sheet: https://portswigger.net/web-security/cross-site-scripting/cheat-sheet 通过爆破发现body可以用 再把全部 events 放进去爆破 这些 event 全部可用 <body onres…...
【生成模型】视频生成论文调研
工作清单 上游应用方向:控制、速度、时长、高动态、多主体驱动 类型工作基础模型WAN / WAN-VACE / HunyuanVideo控制条件轨迹控制ATI~镜头控制ReCamMaster~多主体驱动Phantom~音频驱动Let Them Talk: Audio-Driven Multi-Person Conversational Video Generation速…...
基于 TAPD 进行项目管理
起因 自己写了个小工具,仓库用的Github。之前在用markdown进行需求管理,现在随着功能的增加,感觉有点难以管理了,所以用TAPD这个工具进行需求、Bug管理。 操作流程 注册 TAPD,需要提供一个企业名新建一个项目&#…...
基于IDIG-GAN的小样本电机轴承故障诊断
目录 🔍 核心问题 一、IDIG-GAN模型原理 1. 整体架构 2. 核心创新点 (1) 梯度归一化(Gradient Normalization) (2) 判别器梯度间隙正则化(Discriminator Gradient Gap Regularization) (3) 自注意力机制(Self-Attention) 3. 完整损失函数 二…...
CSS | transition 和 transform的用处和区别
省流总结: transform用于变换/变形,transition是动画控制器 transform 用来对元素进行变形,常见的操作如下,它是立即生效的样式变形属性。 旋转 rotate(角度deg)、平移 translateX(像素px)、缩放 scale(倍数)、倾斜 skewX(角度…...
CVPR2025重磅突破:AnomalyAny框架实现单样本生成逼真异常数据,破解视觉检测瓶颈!
本文介绍了一种名为AnomalyAny的创新框架,该方法利用Stable Diffusion的强大生成能力,仅需单个正常样本和文本描述,即可生成逼真且多样化的异常样本,有效解决了视觉异常检测中异常样本稀缺的难题,为工业质检、医疗影像…...
[USACO23FEB] Bakery S
题目描述 Bessie 开了一家面包店! 在她的面包店里,Bessie 有一个烤箱,可以在 t C t_C tC 的时间内生产一块饼干或在 t M t_M tM 单位时间内生产一块松糕。 ( 1 ≤ t C , t M ≤ 10 9 ) (1 \le t_C,t_M \le 10^9) (1≤tC,tM≤109)。由于空间…...
负载均衡器》》LVS、Nginx、HAproxy 区别
虚拟主机 先4,后7...
