HTML+CSS+JavaScript制作简单轮播图

一        运行效果

二        图片资源

三        代码

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style>
			img{
				position:absolute;
				top:6%;
				left:20%;
				width:800px;
				height:240px;
			}
			.picture {
				background:url("./img/综合背景.png");
			    position: absolute;
				top:14.5%;
			    width: 1550px;
			    height: 302px;
			    margin: 0 auto;
			    /* border: 2px solid rgb(14, 63, 221); */
			    overflow: hidden;
			 }
			
			#image-container img{
				width:100px;
			}
			/* 圆点所在的p (容器)  */
			 .radius {           
			    width: 0px;
				color:black;
			    height: 0px;
			    position: absolute;
			    top:86%;
				text-align: center;
			} 
			
			.pg {                         
			    position: absolute;
			    margin: 0;
			    width: 100%;
			    height: 20px;
			    background-color: rgba(0, 0, 0, .4);
			    text-align: center;
			    font-size: 16px;
			    font-weight: 600;
			    color: #fff;
			}
			
			.title {
			    position: absolute;
			    width: 100%;
			    bottom: 0px;
			    text-align: center;
			    font-size: 16px;
			    font-weight: 600;
			    color: rgb(0, 0, 0);
			  }
			
			span {
			    display: inline-block;
			    border: 8px solid #000000;
			    border-radius: 50%;
				width:12px;
			}
			
			
			.active {
			   border: 1px solid #656466;
			}
			
			/* 左右箭头  */
			.arrowhead-left,
			.arrowhead-right {
				position: absolute;
				width: 41px;
			    height: 69px;
			    font-size: 30px;
			    line-height: 70px;
			    text-align: center;
			    color: #D6D8D4;
			    background-color: rgba(0,0,0,.3);
			}
			
			.arrowhead-left {
			   left: 0;
			   top: 40%;
			  }
			
			  .arrowhead-right {
			     right: 2%;
			     top: 40%;
			}
		</style>
	</head>
	<body>
		
		<div class="picture">
		    <!-- 图片页码 -->
		 <!--  <p class="pg">这里展示页码</p> -->
		    <img src="" alt="">
		   <!-- 小圆点点 -->
		    <p class="radius"></p>
		    <!-- 图片的下面标题 -->
		   <p class="title"></p>
		
		    <!-- 左右箭头 -->
		    <div class="arrowhead-left" id="al"> < </div> 
		    <div class="arrowhead-right" id="ar"> > </div>
		</div>
		<script>
			var zer = document.querySelector(".zer");
		    var address = ["./img/中间轮播图.png", "./img/货币.webp", "./img/纸币.webp", "./img/银行.webp", "./img/中国邮政.webp", "./img/中国银行.webp"];
		    //  var imgs = document.getElementsByTagName("img");
			var container = document.getElementById("image-container");
		    var imgs = document.querySelector("img");
		    var len = address.length;               //图片地址的数量为len
		    var str = "";
		    var pp = document.getElementsByTagName("p");//获取的是p标签的集合
		    //  var pp  = document.querySelector("p");    //获取的是一个元素
		    var al = document.getElementById("al");
		    var ar = document.getElementById("ar");
		    var n = 0 ;
		
		    //添加span标签(小圆点),个数为len个
		    for (i = 0; i < len; i++) {
		        str += ' <span></span>'
		    }
		    pp[1].innerHTML = str;
		   
		    var spans = pp[1].getElementsByTagName('span');  //获取p[1]里所有span标签
		    spans[0].className = 'active';                  //给第一个span标签添加样式 active
		
		    for (i = 0; i < len; i++) {
		        spans[i].index = i;              //自定义索引值
		    
		        spans[i].onmouseover = function () {            //鼠标指向圆点时的事件
		            for (i = 0; i < len; i++) {
		                spans[i].className = "";               //通过循环,清除所有圆点的类名
		            }
		            n=this.index ;
		            this.className = 'active';                 //给鼠标移入的圆点添加类名
		            imgs.src = address[this.index];
		            pp[0].innerHTML = [this.index + 1] + "/6";    
		            pp[2].innerHTML = "" + [this.index + 1];
		            
		        }
		       
		    }
		        
		    ar.onclick = function () {            //右侧箭头,点击一次图片向右换一张
		        n++;
		       if (n>5) {
		          n=0;  
		       } 
		       for (i = 0; i < len; i++) {
		            spans[i].className = "";
		        }
		
		        spans[n].className = "active";
		        imgs.src = address[n];
		        pp[0].innerHTML = (n+1) + "/6";
		        pp[2].innerHTML = "" +(n+1);
		      
		    }
		
		    al.onclick = function () {        // //左侧箭头,点击一次图片向左换一张
		      n--;
		     if (n<0) {
		         n=(len-1);
		     }
		     for (i = 0; i < len; i++) {
		          spans[i].className = "";
		      }         
		      spans[n].className = "active";
		      imgs.src = address[n];
		      pp[0].innerHTML = (n+1) + "/6";
		      pp[2].innerHTML = "" +(n+1);
		    } 
		   
		   setInterval(ar.onclick,3000);             //添加定时器  setInterval(函数,间隔时间单位为毫秒)
		                                             //此次添加的函数为点击右侧箭头,间隔为3秒
		</script>
	</body>
</html>

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【FMCW毫米波雷达设计 】 — FMCW波形

原书&#xff1a;FMCW Radar Design 1 引言 本章研究驱动FMCW雷达的主要波形:线性调频(LFM)波形。我们研究信号的行为及其性质。随后&#xff0c;本章讨论了匹配滤波理论&#xff0c;并研究了压缩这种波形的技术&#xff0c;特别是所谓的拉伸处理&#xff0c;它赋予FMCW雷达极…

最长子序列问题(LCS)--动态规划解法

题目描述&#xff1a; 如果Z既是X的子序列&#xff0c;又是Y的子序列&#xff0c;则称Z为X和Y的公共子序列。 如果给定X、Y&#xff0c;求出最长Z及其长度。 示例&#xff1a; 输入 ABCPDSFJGODIHJOFDIUSHGD OSDIHGKODGHBLKSJBHKAGHI 输出 SDIHODSHG 9 分析&#xff1a…

课堂练习4.2:页式内存管理

4-3 课堂练习4.2:页式内存管理 创建一个进程(创建进程是在磁盘中),进程以字节为单位编号,然后再进程分为许多页(每页 4KB ),内存中有对应的页框(设定同页)。通过页表(记录页和页框的对应关系),将最需要的页调入内存,其他页留在磁盘中。根据 CPU 的需要动态的更新…

鸿蒙开发之封装优化

面向对象开发离不开封装&#xff0c;将重复的可以复用的代码封装起来&#xff0c;提高开发效率。 基于之前的List&#xff0c;对代码进行封装。 1、抽取component 将List的头部抽离出来作为一个新的component。可以创建一个新的ArkTS文件&#xff0c;写我们的头部代码 为了…

Springboot获取jar版本方法

Springboot获取jar版本方法 方案一: 通过jar的pom.properties文件获取 获取demo Properties properties new Properties(); try {properties.load(RakicAppInfo.class.getResourceAsStream("/META-INF/maven/com.rakic.framework/rakic-app-springboot-start/pom.pro…

Kubernetes里的DNS;API资源对象ingress;Kubernetes调度;节点选择器NodeSelector;节点亲和性NodeAffinity

Kubernetes里的DNS K8s集群内有一个DNS服务&#xff1a; kubectl get svc -n kube-system |grep dns测试&#xff1a; 在tang3上安装bind-utils,目的是安装dig命令 yum install -y bind-utils apt install dnsutils #ubuntu上 解析外网域名 dig 10.15.0.10 www.baidu.com…

JavaScript-节点操作

节点操作 DOM节点 DOM节点&#xff1a;DOM树里每一个内容都称之为节点 节点类型&#xff1a; 元素节点 所有的标签 比如body、divhtml时跟节点 属性节点 所有的属性&#xff0c;比如href 文本节点 所有的文本 其他 查找节点 节点的关系&#xff1a;针对的找亲戚返回的都是…

63. 不同路径 II

一个机器人位于一个 m x n 网格的左上角 &#xff08;起始点在下图中标记为 “Start” &#xff09;。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角&#xff08;在下图中标记为 “Finish”&#xff09;。 现在考虑网格中有障碍物。那么从左上角到右下角…

查找算法——线性查找、二分查找

列表查找&#xff1a;从列表中查找指定元素。 列表查找的两种方法备注 顺序查找 (也叫线性查找) 两种方式&#xff1a; &#xff08;1&#xff09;自己写段代码。 &#xff08;2&#xff09;用列表内置函数index( ) 列表有序无序都可以。二分查找自己写段代码 列表必须有序&a…

动态规划_最小花费爬楼

//给你一个整数数组 cost &#xff0c;其中 cost[i] 是从楼梯第 i 个台阶向上爬需要支付的费用。一旦你支付此费用&#xff0c;即可选择向上爬一个或者两个台阶。 // // 你可以选择从下标为 0 或下标为 1 的台阶开始爬楼梯。 // // 请你计算并返回达到楼梯顶部的最低花费。 …

Vue 静态渲染 v-pre

v-pre 指令&#xff1a;用于阻止 Vue 解析这个标签&#xff0c;直接渲染到页面中。 语法格式&#xff1a; <div v-pre> {{ 数据 }} </div> 基础使用&#xff1a; <template><h3>静态渲染 v-pre</h3><p v-pre>静态渲染&#xff1a;{{ n…

JavaEE 08 线程池简介

前言 前面我们谈完了定时器,单例模式,阻塞队列等的操作并且做了模拟实现,今天我们再来说一说线程池的操作以及一些锁策略. 注:本章几乎均为理论篇,实践较少. 下面就让我们开始吧. 线程池 我们知道因为进程的频繁创建和销毁,带来的开销过大,我们无法接受,所以我们引入了更轻量级…

Oracle(2-13) RMAN Complete Recove

文章目录 一、基础知识1、Restoration Using RMAN利用RMAN进行恢复2、Relocate a Tablespace 重新定位表空间 二、基础操作1、恢复前的准备2、恢复数据库3、恢复单个数据文件4、在数据库打开的情况下恢复 RMAN Complete Recove RMAN完全恢复 目标&#xff1a; 了解RMAN用于恢复…

低代码是你得菜吗?传统编程如何应对低代码的挑战?有哪些优秀的低代码平台?

低代码开发是一种越来越受到关注的软件开发方式&#xff0c;它旨在通过简化和加速应用程序开发过程来降低编程门槛。随着技术的进步和对快速交付的需求增加&#xff0c;低代码平台提供了一个快速构建应用程序的环境&#xff0c;无需深入的编程知识&#xff0c;使非专业开发人员…

分布式环境下的session 共享-基于spring-session组件和Redis实现

1、问题概述 不是所有的项目都是单机模式的&#xff0c;当一个项目服务的局域比较广&#xff0c;用户体量比较大&#xff0c;数据量较大的时候&#xff0c;我们都会将项目部署到多台服务器上&#xff0c;这些个服务器都是分布在不同的区域&#xff0c;这样实现了项目的负载和并…

倪海厦:教你正确煮中药,发挥最大药效

同样的一个汤剂&#xff0c;我开给你&#xff0c;你如果煮的方法不对&#xff0c;吃下去效果就没那么好。 所以&#xff0c;汤&#xff0c;取它的迅捷&#xff0c;速度很快&#xff0c;煮汤的时候还有技巧&#xff0c;你喝汤料的时候&#xff0c;你到底是喝它的气&#xff0c;…

Windows安装kafka

压缩包下载地址&#xff1a;https://www.apache.org/dyn/closer.cgi?path/kafka/3.6.1/kafka_2.13-3.6.1.tgz 启动kafka步骤 zookeeper-server-start.bat rem 闭命令提示符窗口的命令回显&#xff0c;这样在运行脚本时不会显示脚本的具体命令内容 echo offrem 命令行启动未…

原来JMeter 结果处理常见问题这么简单,可惜没早点看到!

1. 前言 工作中用 jmeter 请求一个接口对谈得上会 jmeter 的人似乎都是可以做出来的&#xff0c;但是实际难点是参数化&#xff0c;结果的断言&#xff0c;结果的汇总等。本文将针对结果过滤有效性的情况展开分析。 示例场景&#xff1a;一个接口需要对入参1000多个数据做测试…

JavaScript系列-数据类型

ES6变量类型 JavaScript编程语言中&#xff0c;变量类型分为基本变量类型和引用类型&#xff0c;两种变量类型的区别在于 基本类型变量值存放于栈中&#xff0c;引用类型变量值存放于堆中基本类型赋值给其他变量&#xff0c;是将其值复制过去引用类型赋值给其他变量&#xff…

为什么SpringBoot的jar可以直接运行

程序员的公众号&#xff1a;源1024&#xff0c;获取更多资料&#xff0c;无加密无套路&#xff01; 最近整理了一波电子书籍资料&#xff0c;包含《Effective Java中文版 第2版》《深入JAVA虚拟机》&#xff0c;《重构改善既有代码设计》&#xff0c;《MySQL高性能-第3版》&…