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

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轮播图实现

这个代码创建了一个简单的轮播图&#xff0c;可以通过点击左右箭头或自动播放来切换图片。 <!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应用程序。功能&#xff1a;将把文本从英语翻译成另一种语言。 实现&#xff1a;LLM调用加上一些提…...

Python 爬取天气预报并进行可视化分析

今天&#xff0c;我们就来学习如何使用 Python 爬取天气预报数据&#xff0c;并用数据可视化的方式将未来几天的天气信息一目了然地展示出来。 在本文中&#xff0c;我们将分三步完成这一任务&#xff1a; 使用 Python 爬取天气数据数据解析与处理用可视化展示天气趋势 让我…...

最左侧冗余覆盖子串

题目描述 给定两个字符串 s1 和 s2 和正整数 k&#xff0c;其中 s1 长度为 n1&#xff0c;s2 长度为 n2。 在 s2 中选一个子串&#xff0c;若满足下面条件&#xff0c;则称 s2 以长度 k 冗余覆盖 s1 该子串长度为 n1 k 该子串中包含 s1 中全部字母 该子串每个字母出现次数…...

性能测试-JMeter(2)

JMeter JMeter断言响应断言JSON断言断言持续时间 JMeter关联正则表达式提取器正则表达式正则表达式提取器 XPath提取器JSON提取器 JMeter属性JMeter录制脚本 JMeter断言 断言&#xff1a;让程序自动判断预期结果和实际结果是否一致 提示&#xff1a; -Jmeter在请求的返回层面有…...

芯课堂 | Synwit_UI_Creator(μgui)平台之图像处理篇

今天小编给大家介绍的是UI_Creator&#xff08;μgui&#xff09;平台下关于图像处理的选项。 UI_Creator&#xff08;μgui&#xff09;平台图片类控件有图像控件和分级图像控件&#xff0c;均包含以下选项&#xff1a; 1、消除水波纹&#xff1a; 由于16位真彩色&#xff08…...

QT C++ 软键盘/悬浮键盘/触摸屏键盘的制作

目录 1、前言 2、界面设计 3、英文、数字的输入 4、符号的输入 5、中文的输入 6、中文拼音库的选择 7、其他 8、结语 1、前言 使用QT C在带显示器的Linux系统 开发板上&#xff08;树莓派等&#xff09;编写操作UI界面时&#xff0c;很多时候都需要一个软键盘来输入文字…...

element-ui点击文字查看图片预览功能

今天做一个点击文字查看图片的功能&#xff0c;大体页面长这样子&#xff0c;点击查看显示对应的图片 引入el-image-viewer&#xff0c;点击的文字时候设置图片预览组件显示并传入图片的地址 关键代码 <el-link v-if"scope.row.fileList.length > 0" type&…...

SpringBoot集成Redis使用Cache缓存

使用SpringBoot集成Redis使用Cache缓存只要配置相应的配置类&#xff0c;然后使用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驱动 由于板子引出的接口限制&#xff0c;故使用gpio模拟spi驱动中景园的1.8寸lcd 1.77寸液晶屏 1.8寸TFT LCD SPI TFT彩屏st7735驱动128x160高清屏-淘宝网 (taobao.com) 使用RASC 的gpio配置 根据厂家提供的驱动文件移植 #define LCD_SCLK_Clr() g…...

算法收敛的一些证明方法与案例

证明一个算法收敛通常涉及多个角度&#xff0c;以下是一些常用的方法和示例&#xff1a; 一、方法 1. 数学归纳法 通过数学归纳法证明算法在每一步的输出结果都在收敛范围内。 示例&#xff1a;考虑一个递归算法&#xff0c;假设我们要证明它在每一步中输出的值逐渐接近目标…...

基于vue框架的蛋糕店网上商城740g7(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。

系统程序文件列表 项目功能&#xff1a;用户,店长,商品分类,商品信息,订单投诉,反馈信息 开题报告内容 基于Vue框架的蛋糕店网上商城开题报告 一、项目背景与意义 随着互联网技术的快速发展和普及&#xff0c;电子商务已成为现代商业的重要组成部分。蛋糕作为一种受欢迎的美…...

你真的了解Canvas吗--解密六【ZRender篇】

目录 &#x1f4da;入口 Circle - 图形 Group - 组 事件捕获 - 流程 step - 1 step - 2 总结 这篇文章我们讲讲Circle圆形&#xff0c;Group组的使用以及大家最熟悉又陌生的事件捕获和冒泡在ZRender中的实现&#xff0c;篇幅较长&#xff0c;且听我慢慢分析。 &#x…...

孤独相伴 - 结婚十七年

07年的今天&#xff0c;我和老公请假&#xff0c;去了新加坡的大使馆领证。 17年后的今天&#xff0c;此刻凌晨16分&#xff0c; 这是17年来我第一次这么早写结婚纪念&#xff0c;只是凑巧。 今天的心情莫名其妙。 此刻&#xff0c;两个词出现在我的脑海&#xff1a;孤独 &am…...

json-server,跨域

启动json-serer json-server --watch db.json 注意&#xff1a; db.json为json文件的名称&#xff0c;你自己的文件名叫什么&#xff0c;就启动对应的文件就可以了 启动json-server的时候&#xff0c;必须在你db.json所在的文件夹下进行启动 这样服务器就可以启动成功了&…...

【Conda】修复 Anaconda 安装并保留虚拟环境的详细指南

目录 流程图示1. 下载 Anaconda 安装程序2. 重命名现有的 Anaconda 安装目录Windows 操作系统Linux 操作系统 3. 运行新的 Anaconda 安装程序Windows 操作系统Linux 操作系统 4. 同步原环境使用 robocopy 命令&#xff08;Windows&#xff09;使用 rsync 命令&#xff08;Linux…...

转行高薪 AI 产品经理,快速入门方法在此处

根据《2024年中国AI大模型场景探索及产业应用调研报告》&#xff0c;当前整体AI大模型行业仍然处于萌芽期&#xff0c;但市场规模增速较快。2023年我国AI大模型行业规模达到了147亿元&#xff0c;近三年复合增速高达114%。预计2024年&#xff0c;该市场规模将进一步增长至216亿…...

初识环境变量

初识环境变量 目录&#xff1a; 什么是环境变量常见的环境变量Linux中与环境变量的有关的命令如何获取环境变量环境变量的特点环境变量的作用 1.什么是环境变量 我们在Linux操作系统下&#xff0c;使用指令&#xff0c;比如ls,pwd,cd等等&#xff0c;可以直接使用&#xff0c…...

成像基础 -- 景深计算

景深计算 景深&#xff08;Depth of Field, DOF&#xff09;指的是在摄影中&#xff0c;能够清晰成像的物体前后距离的范围。景深的大小取决于多个因素&#xff0c;包括焦距、光圈值、物距以及相机感光元件的尺寸。 1. 景深的主要参数 焦距&#xff08; f f f&#xff09;&a…...

Git中从dev分支恢复master分支

问题 需要从dev分支恢复master分支。之前搞错远程地址了&#xff0c;把master分支搞乱了&#xff0c;现在需要从dev分支恢复代码到master分支。 步骤 git checkout dev # 切换到 dev 分支 git branch -D master # 删除本地 master 分支 git checko…...

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...

简易版抽奖活动的设计技术方案

1.前言 本技术方案旨在设计一套完整且可靠的抽奖活动逻辑,确保抽奖活动能够公平、公正、公开地进行,同时满足高并发访问、数据安全存储与高效处理等需求,为用户提供流畅的抽奖体验,助力业务顺利开展。本方案将涵盖抽奖活动的整体架构设计、核心流程逻辑、关键功能实现以及…...

基于服务器使用 apt 安装、配置 Nginx

&#x1f9fe; 一、查看可安装的 Nginx 版本 首先&#xff0c;你可以运行以下命令查看可用版本&#xff1a; apt-cache madison nginx-core输出示例&#xff1a; nginx-core | 1.18.0-6ubuntu14.6 | http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages ng…...

【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表

1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...

MySQL中【正则表达式】用法

MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现&#xff08;两者等价&#xff09;&#xff0c;用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例&#xff1a; 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...

根据万维钢·精英日课6的内容,使用AI(2025)可以参考以下方法:

根据万维钢精英日课6的内容&#xff0c;使用AI&#xff08;2025&#xff09;可以参考以下方法&#xff1a; 四个洞见 模型已经比人聪明&#xff1a;以ChatGPT o3为代表的AI非常强大&#xff0c;能运用高级理论解释道理、引用最新学术论文&#xff0c;生成对顶尖科学家都有用的…...

九天毕昇深度学习平台 | 如何安装库?

pip install 库名 -i https://pypi.tuna.tsinghua.edu.cn/simple --user 举个例子&#xff1a; 报错 ModuleNotFoundError: No module named torch 那么我需要安装 torch pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple --user pip install 库名&#x…...

React---day11

14.4 react-redux第三方库 提供connect、thunk之类的函数 以获取一个banner数据为例子 store&#xff1a; 我们在使用异步的时候理应是要使用中间件的&#xff0c;但是configureStore 已经自动集成了 redux-thunk&#xff0c;注意action里面要返回函数 import { configureS…...

论文笔记——相干体技术在裂缝预测中的应用研究

目录 相关地震知识补充地震数据的认识地震几何属性 相干体算法定义基本原理第一代相干体技术&#xff1a;基于互相关的相干体技术&#xff08;Correlation&#xff09;第二代相干体技术&#xff1a;基于相似的相干体技术&#xff08;Semblance&#xff09;基于多道相似的相干体…...

20个超级好用的 CSS 动画库

分享 20 个最佳 CSS 动画库。 它们中的大多数将生成纯 CSS 代码&#xff0c;而不需要任何外部库。 1.Animate.css 一个开箱即用型的跨浏览器动画库&#xff0c;可供你在项目中使用。 2.Magic Animations CSS3 一组简单的动画&#xff0c;可以包含在你的网页或应用项目中。 3.An…...