实现一个简单的图片轮播效果

article/2025/9/23 23:42:46

学习笔记

思路

这里就说一下我的思路吧,我们可以先将所有图片的不透明度设置为0,也就是全透明,不可见(也不一定靠设置透明度来实现图片不可见,也可以直接设置元素不可见),使用下标的方式来控制图片是否可见,指定下标的图片的不透明度设置为100,也就是图片可见,这样就实现了显示一张图片的效果,然后我们再用定时器循环改变这个下标,这样就实现了在特定间隔内显示不同图片的效果,也就是图片轮播。

效果

在这里插入图片描述

点击按钮切换图片的思路也是通过改变下标的方式来控制显示的图片
在这里插入图片描述

代码部分

网页部分

<body><div id="box">
<!--        轮播图片--><ul id="transform"><li><img src="1.jpg" alt="this is a picture"></li><li><img src="2.jpg" alt="this is a picture"></li><li><img src="4.jpg" alt="this is a picture"></li></ul><ul id="point"><li></li><li></li><li></li></ul></div><div id="left"><p><</p></div><div id="right"><p>></p></div>
</body>

css部分

<style>* {margin: 0;padding: 0;}/*设置图片大小*/img {width: 700px;height: 500px;cursor: pointer;}#transform {position: absolute;top: 50px;left: 27%;list-style: none;}/*设置轮播图片样式*/#transform li {position: absolute;opacity: 100;}#point {position: absolute;top: 600px;left: 45%;display: flex;list-style: none;}/*小点样式*/#point li {width: 20px;height: 20px;background-color: aqua;border-radius: 50%;margin-left: 20px;cursor: pointer;}/*    左右切换按钮样式*/#left {position: absolute;top: 300px;left: 15%;font-size: 70px;font-weight: bold;color: #00000070;cursor: pointer;}#right {position: absolute;top: 300px;left: 80%;font-size: 70px;font-weight: bold;color: #00000070;cursor: pointer;}</style>

js部分

<script type="text/javascript">
<!--    自动执行定时器函数 图片自动轮播-->window.onload = automatic;var images = document.getElementById("transform").children;var points = document.getElementById("point").children;var interval;var leftButton = document.getElementById("left");var rightButton = document.getElementById("right");//设置开始图片下标 从第一张图片开始var index = 0;//循环设置元素下标for (var i = 0;i < images.length;i++){images[i].index = i;points[i].index = i;//添加点击小点切换图片事件points[i].onclick = appoint;images[i].onmouseover = function (){clearInterval(interval)};images[i].onmouseleave = function (){automatic()};}function appoint(){var apo = this.index;//循环设置li不透明度为0 也就是不可见for (var i = 0;i < images.length;i++){images[i].style.opacity = "0";}images[apo].style.opacity = "100";}//自动切换图片函数function automatic(){interval = setInterval(function (){//循环设置li不透明度为0 也就是不可见for (var i = 0;i < images.length;i++){images[i].style.opacity = "0";}//然后设置指定下标的li的不透明度为100 实现了显示指定下标的图片,而不显示其他图片images[index].style.opacity = "100";//下标自动增长index++;//下标如果超出范围,将下标重置为0if (index == images.length){index = 0;}},2000);}//为左右切换图片按钮添加事件leftButton.onclick = previous;//鼠标移动到 上一张 按钮 停止定时器leftButton.onmouseover = function (){clearInterval(interval)};//鼠标离开 上一张 按钮 开始定时器leftButton.onmouseleave = function (){automatic()};rightButton.onclick = next;//鼠标移动到 下一张 按钮 停止定时器rightButton.onmouseover = function (){clearInterval(interval)};//鼠标离开 下一张 按钮 开始定时器rightButton.onmouseleave = function (){automatic()};//切换下一张图片函数function next(){index = index + 1;//如果下标超出范围 将下标赋值为0if (index == images.length){index = 0;}//循环设置li不透明度为0 也就是不可见for (var i = 0;i < images.length;i++){images[i].style.opacity = "0";}//将下一张图片设置为可见images[index].style.opacity = "100";}//切换上一张图片function previous(){index = index - 1;//如果下标超出范围 将下标设置为 图片数量-1if (index == -1){index = images.length -1;}//循环设置li不透明度为0 也就是不可见for (var i = 0;i < images.length;i++){images[i].style.opacity = "0";}//将上一张图片设置为可见images[index].style.opacity = "100";}</script>

完整代码

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><style>* {margin: 0;padding: 0;}/*设置图片大小*/img {width: 700px;height: 500px;cursor: pointer;}#transform {position: absolute;top: 50px;left: 27%;list-style: none;}/*设置轮播图片样式*/#transform li {position: absolute;opacity: 100;}#point {position: absolute;top: 600px;left: 45%;display: flex;list-style: none;}/*小点样式*/#point li {width: 20px;height: 20px;background-color: aqua;border-radius: 50%;margin-left: 20px;cursor: pointer;}/*    左右切换按钮样式*/#left {position: absolute;top: 300px;left: 15%;font-size: 70px;font-weight: bold;color: #00000070;cursor: pointer;}#right {position: absolute;top: 300px;left: 80%;font-size: 70px;font-weight: bold;color: #00000070;cursor: pointer;}</style>
</head>
<body><div id="box">
<!--        轮播图片--><ul id="transform"><li><img src="1.jpg" alt="this is a picture"></li><li><img src="2.jpg" alt="this is a picture"></li><li><img src="4.jpg" alt="this is a picture"></li></ul><ul id="point"><li></li><li></li><li></li></ul></div><div id="left"><p><</p></div><div id="right"><p>></p></div>
</body><script type="text/javascript">
<!--    自动执行定时器函数 图片自动轮播-->window.onload = automatic;var images = document.getElementById("transform").children;var points = document.getElementById("point").children;var interval;var leftButton = document.getElementById("left");var rightButton = document.getElementById("right");//设置开始图片下标 从第一张图片开始var index = 0;//循环设置元素下标for (var i = 0;i < images.length;i++){images[i].index = i;points[i].index = i;//添加点击小点切换图片事件points[i].onclick = appoint;images[i].onmouseover = function (){clearInterval(interval)};images[i].onmouseleave = function (){automatic()};}function appoint(){var apo = this.index;//循环设置li不透明度为0 也就是不可见for (var i = 0;i < images.length;i++){images[i].style.opacity = "0";}images[apo].style.opacity = "100";}//自动切换图片函数function automatic(){interval = setInterval(function (){//循环设置li不透明度为0 也就是不可见for (var i = 0;i < images.length;i++){images[i].style.opacity = "0";}//然后设置指定下标的li的不透明度为100 实现了显示指定下标的图片,而不显示其他图片images[index].style.opacity = "100";//下标自动增长index++;//下标如果超出范围,将下标重置为0if (index == images.length){index = 0;}},2000);}//为左右切换图片按钮添加事件leftButton.onclick = previous;//鼠标移动到 上一张 按钮 停止定时器leftButton.onmouseover = function (){clearInterval(interval)};//鼠标离开 上一张 按钮 开始定时器leftButton.onmouseleave = function (){automatic()};rightButton.onclick = next;//鼠标移动到 下一张 按钮 停止定时器rightButton.onmouseover = function (){clearInterval(interval)};//鼠标离开 下一张 按钮 开始定时器rightButton.onmouseleave = function (){automatic()};//切换下一张图片函数function next(){index = index + 1;//如果下标超出范围 将下标赋值为0if (index == images.length){index = 0;}//循环设置li不透明度为0 也就是不可见for (var i = 0;i < images.length;i++){images[i].style.opacity = "0";}//将下一张图片设置为可见images[index].style.opacity = "100";}//切换上一张图片function previous(){index = index - 1;//如果下标超出范围 将下标设置为 图片数量-1if (index == -1){index = images.length -1;}//循环设置li不透明度为0 也就是不可见for (var i = 0;i < images.length;i++){images[i].style.opacity = "0";}//将上一张图片设置为可见images[index].style.opacity = "100";}</script>
</html>

http://chatgpt.dhexx.cn/article/PYq3wnqx.shtml

相关文章

c++ 判断亲和数

c 判断亲和数 在自然数220与284之间&#xff0c;有一种非常奇妙的关系&#xff0c;能够整除22022511的全部正整数&#xff08;不包括220&#xff09;之和1245102011224455110恰好等于284&#xff1b;而能够整除2842271的全部正整数&#xff08;不包括284&#xff09;之和124711…

寻找亲和数对C语言,寻找亲和数

人与人之间讲究友情&#xff0c;而有趣的是&#xff0c;数与数之间也有相类似的关系&#xff0c;数学家把一对存在特殊关系的数称为“亲和数”。亲和数&#xff0c;又称相亲数、友爱数、友好数&#xff0c;指两个正整数中&#xff0c;彼此的全部约数之和(本身除外)与另一方相等…

如何判断亲和数

内容&#xff1a;判断亲和数 目的&#xff1a;掌握循环与if语句 程序代码&#xff1a; /* * 程序的版权和版本声明部分: * Copyright (c) 2013, 烟台大学计算机学院 * All rights reserved. * 文件名称&#xff1a;test.cpp * 作 者&#xff1a;匡效国 …

亲和数-C++

目录 原题目 题目描述: 输入格式: 输出格式: 样例输入: 样例输出: 提示: 解题 part1 part2 part3 原题目 题目描述: 自然数a的因子是指能整除a的所有自然数&#xff0c;但不含a本身。例如12的因子为&#xff1a;1、2、3、4、6。若自然数的因子之和为b&#xff0c;而…

python程序设计——练习9

目录 1.任意整数各个位数之和2.列表下标转换3.稀疏矩阵的表示4.有序列表插入元素5.列表合并去重6.单词的区域7.查验身份证8.亲和数9.乘积的列表10.矩阵相加 1.任意整数各个位数之和 请输入任意一个正整数&#xff0c;求各个位数之和并输出。 输入样例1&#xff1a; 123 输出样…

squeezenet,DSD

squeezenet 2016.11.4 squeezenet的目的是用更少的网络构建模型&#xff0c;同时保持模型的准确率。 出发的三个原则是&#xff1a;1、用1*1卷积代替3*3卷积 2、减少与3*3卷积相连的通道数 3、在网络后期使用采样。保证特征图的大小。 其中1、2的目的是减少参数&#xff0c;同时…

Squid

Squid中文权威指南&#xff1a;点击打开链接 CentOS 6.4下Squid代理服务器的安装与配置 一、简介 代理服务器英文全称是Proxy Server&#xff0c;其功能就是代理网络用户去取得网络信息。 Squid是一个缓存Internet 数据的软件&#xff0c;其接收用户的下载申请&#xff0c;并自…

Squeeze-and excitation network

Squeeze-and excitation network introdutcion motivation&#xff1a;当前一些研究表明&#xff0c;将attention机制引入网络中来捕获特征之间的空间相关性可增强CNN的表征&#xff0c;但本文希望建立channels之间的关系。 整体的SE block的图&#xff1a; 如上图所示&…

SQUIRE: A Sequence-to-sequence Framework for Multi-hop Knowledge Graph Reasoning

摘要 近年来&#xff0c;多跳知识图(KG)推理得到了广泛的研究&#xff0c;以提供具有证据路径的缺失链接的可解释预测。大多数先前的工作使用基于强化学习(RL)的方法来学习导航到目标实体的路径。然而&#xff0c;这些方法的收敛速度慢&#xff0c;收敛性差&#xff0c;当路径…

Squeeze-and-Excitation Networks

摘要 卷积神经网络建立在卷积运算的基础上&#xff0c;通过融合局部感受野内的空间信息和通道信息来提取信息特征。为了提高网络的表示能力&#xff0c;许多现有的工作已经显示出增强空间编码的好处。在这项工作中&#xff0c;我们专注于通道&#xff0c;并提出了一种新颖的架…

HTML页面可视化快速设计

1、HTML页面可视化快速设计工具&#xff1a;Maqetta IBM 公司在 IBM Impact 2011 上面发布了 Maqetta&#xff0c;一个创建桌面和移动用户界面的 HTML5 设计编辑工具&#xff0c;并同时宣布将项目捐助给开源机构 Dojo 基金会。 也即Maqetta 是由 Dojo 基金会提出的开源技术 ,…

HTML 转 EXE 工具(HTML App Build)

2023-07-01 将进行完全功能免费发布&#xff0c;本文中的下载连接已经是最新的下载连接。 2023-02-19 已经进行了重大升级&#xff01; 一款免费的HTML转EXE工具&#xff0c;无论您是单页面应用&#xff0c;或者是其他的使用传统的html javascript css 生成的网站&#xff0c…

HTML5教程|0代码,快速制作调查问卷

我们经常需要收集数据&#xff0c;今天我们来介绍一种自己实现问卷调查数据表的制作方法&#xff0c;本节教程是单选框的交互制作&#xff0c;希望大家看完都可以学会。我们使用的H5工具是Epub360&#xff0c;下面就进入教学环节吧~ 一、组件介绍&#xff1a; 单选项&#xf…

几款制作帮助文档的工具汇总

几款制作帮助文档的工具汇总 文章目录 几款制作帮助文档的工具汇总为什么需要发布产品帮助文档支持在线用 MarkDown格式的编辑器1、[GitBook](https://www.gitbook.com/)2、[Docsify](https://docsify.js.org/)3 、MrDoc4. YDoc5、VuePress6、[Docusaurus](https://docusaurus.…

微软html帮助文档制作,MicrosoftHTMLHelpWorkshop(CHM文件生成工具)

MicrosoftHTMLHelpWorkshop是一款文件制作工具&#xff0c;通过此软件能够帮助我们对CHM文件进行快速编程配置&#xff0c;也可快速的进行建立需要的HYML格式的文件&#xff0c;软件还可单独的进行运行&#xff0c;可快速的制作出CHM文件&#xff0c;简单又实用&#xff0c;有需…

html 制作箭头,怎么使用html制作箭头?制作箭头代码分享!

我们在制作静态页面的时候一般的都会使用一些什么箭头、按钮等等各种形状的控件&#xff0c;但是一般比较常使用的就是用图片加入然后再设置函数从而达到预期的效果&#xff0c;那么今天我们就来说说不用照片怎么设计一个箭头吧&#xff01; 1.编写盒子代码 首先我们使用开发工…

可视化html dream,推荐十款非常优秀的 HTML5 在线设计工具

网络有很多优秀的设计和开发工具可能大家都不知道&#xff0c;因此这篇文章就向设计师推荐十款优秀 HTML5 在线工具&#xff0c;这些工具能够帮助设计师们设计出更有创意的作品。随着 HTML5 技术的不断成熟&#xff0c;网络上涌现出越来越多的优秀 HTML5 应用&#xff0c;一起看…

易企秀如何导出html,易企秀怎么免费制作h5?

如何使用易企秀制作一个免费的html5页面&#xff1f;如何使用易企秀制作一个免费的h5页面来进行宣传&#xff1f;易企秀如何制作一个营销页面&#xff1f; 方法步骤 1.易企秀是一款非常好用的营销工具&#xff0c;用户能够在里面免费的制作出一个h5页面&#xff0c;来进行产品的…

易企秀HTML5文件,怎么用易企秀制作h5场景秀?

易企秀是一款手机端精美网页DIY制作工具 &#xff0c;用户可以编辑手机网页&#xff0c;分享到社交网络&#xff0c;并且通过报名表单收集潜在客户或其他反馈信息。适用于&#xff1a;企业宣传&#xff0c;产品介绍&#xff0c;活动促销&#xff0c;预约报名&#xff0c;会议组…

HTML5 canvas画板的制作

canvas画板的制作 今天看了一些canvas视频的教程&#xff0c;有制作画板的过程&#xff0c;但是我有给出他们的简洁版和使用版本&#xff0c;能让用户看出画直线的路径&#xff0c;也就是当你拉一条直线的时候就和绘图工具一样&#xff0c;都能很好使用&#xff0c;绘图之后&am…