首页 > 其他分享 >JS小案例:单个按钮绑定时钟开启和暂停以及随机点名

JS小案例:单个按钮绑定时钟开启和暂停以及随机点名

时间:2024-08-30 19:25:05浏览次数:13  
标签:function 点名 绑定 value JS 案例 flag 按钮 var

 单个按钮开启暂停时钟案例

单个按钮绑定时钟案例中,核心在于进行value值的判断,每次点击按钮都会进行一次value值判断以及value值更改

HTML源码:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>一个按钮绑定时钟开始和暂停</title>
	</head>
	<body onl oad="showTime()">
		<div id="d1">
			
		</div>
		<!--  定义隐藏域,目的是为了在点击按钮时切换状态,作为判断开始或暂停的条件 -->
		<input type="hidden" id="hdd1" value="start" />
		
		<input type="button" id="btn" value="按钮" onclick="btn_pres()" />
		
	</body>
	<script>
		function $(obj){
			return document.getElementById(obj);
		}
		
		var flag;
		// 获取当前系统时间
		function showTime(){
			//修改页面为当前系统时间
			$("d1").innerText=currentTime();
			//指定毫秒数之后执行指定函数
			flag =setTimeout("showTime()",1000);
		}
		//暂停
		function ting(){
			clearTimeout(flag);
		}
		//获取当前系统时间
		function currentTime(){
			var today=new Date();
			var hours=today.getHours();
			var mins=today.getMinutes();
			var sec =today.getSeconds();
			return  hours+":"+mins+":"+sec;
			
		}
		//点击事件函数
		function btn_pres(){
			
			if($("hdd1").value=="start"){
				clearTimeout(flag);//暂停时间
				$("hdd1").value="end";
			}else {
				showTime();//开启时间
				$("hdd1").value="start";
			}
		}
	</script>
</html>

 随机点名案例

随机点名小案例:点名案例在学会上一个案例后,很好理解

 HTML源码:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>点名普通版</title>
	</head>
	<!-- 页面加载完成时,调用dianming函数 -->
	<body onl oad="dianming()">
			<!-- 	 实现点名器(抽奖程序)
		    1) var arr=new Array("zhangsan,....")  创建一个数组存放原始数据
		    2)arr[random]    使用随机数生成数组下标
		    3) setInterval或 setTimeout   周期执行点名程序   -->  
			
			<div id="d1" >
			<!-- 在此位置展示数据 -->	
			</div>
			<!-- 点名调用dianming函数 ,与按钮绑定,我们自己定义的js函数-->
			<input type="button" id="kaishi"value="重新点名" onclick="dianming()">
			<!-- 结束调用ting函数 与按钮绑定,我们自己定义的js函数-->
			<input type="button" id="ting" value="结束" onclick="ting()"/>
			
	</body>
	<script>
		//封装一个获取元素对象的函数,方便后续使用
		function $(obj){
			return document.getElementById(obj);
		}
		//创建含有原始数据的数组
		//可以修改数组中的数据
		var arr=["zhangsan","lisi","wangwu","zhaoliu","qianqi"];
		//设置标记变量并提高作用范围
		var flag;
		//点名函数
		function dianming(){
			//随机获取数组中的下标,并转换成整数
			var name=parseInt(Math.random()*(arr.length-1));
			//调用封装好的函数,修改标签中展示的内容
			$("d1").innerText=arr[name];
			//一段时间(设置时间为毫秒值1s=1000ms)后再次执行点名函数,因为setTimeout函数嵌套在dianming函数中
			//其实是一个递归(自己调用自己的过程),会一直持续下去,直到我们点击按钮(绑定ting函数)取消递归
			flag=setTimeout("dianming()",100);
		}
		//可以理解为结束递归的条件
		function ting(){
			clearTimeout(flag);
		}
	</script>
</html>

随机点名案例图片版

图片版点名只是在随机点名的基础上将文本替换成img标签

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="js/myJS.js"></script>
	</head>
	<style>
		img{
			width: 100px;
			width: 100px;
		}
	</style>
	<body onl oad="dianming()">
			<div style="margin: auto; width: 200px;">
			<table>
				<tr style="height: 100px; width: 100px;">
					<div id="d1"  style="width: 100px;height: 100px"></div>
				</tr>
				<tr>
					<input type="button" id="kaishi"value="重新点名" onclick="dianming()">
					<input type="button" id="ting" value="结束" onclick="ting()"/>
				</tr>
			</table>
			</div>
	</body>
	<script>
		var arr=["zhangsan","lisi","wangwu","zhaoliu","qianqi"];
		var arrimg =[0,1,2,3,4,5,6,7,8,9];
		
		function dianming(){
			var name=parseInt(Math.random()*(arrimg.length-1));
			//将图片命名为1.jpg等类似格式,与数组中存储数据要一一对应,注意图片路径,为自己的路径,使用字符串拼接即可
			$("d1").innerHTML="<img src=img/"+name+".jpg>";
			flag=setTimeout("dianming()",100);
		}
		function ting(){
			clearTimeout(flag);
		}
	</script>
</html>

 以上是近来学习JS的一些小案例

标签:function,点名,绑定,value,JS,案例,flag,按钮,var
From: https://blog.csdn.net/weixin_52937170/article/details/141724106

相关文章

  • [WPF]数据绑定时为何会出现StringFormat失效Nd
    在数据绑定过程中,我们经常会使用StringFormat对要显示的数据进行格式化,以便获得更为直观的展示效果,但在某些情况下格式化操作并未生效,例如Button的Content属性以及ToolTip属性绑定数据进行StringFormat时是无效的。首先回顾一下StringFormat的基本用法。StringFormat的用法Str......
  • JS逆向入门案例-xx志愿服务网encData-05
    文章目录概要整体架构流程技术细节小结概要提示:仅供学习,不得用做商业交易,如有侵权请及时联系!逆向:xx志愿服务网URL:aHR0cDovL2NoaW5hdm9sdW50ZWVyLm1jYS5nb3YuY24vc2l0ZS9wcm9qZWN0目标:表单数据中的encData参数整体架构流程提示:分析-调试-猜想-实现-执......
  • [WPF]数据绑定时为何会出现StringFormat失效hC
    在数据绑定过程中,我们经常会使用StringFormat对要显示的数据进行格式化,以便获得更为直观的展示效果,但在某些情况下格式化操作并未生效,例如Button的Content属性以及ToolTip属性绑定数据进行StringFormat时是无效的。首先回顾一下StringFormat的基本用法。StringFormat的用法Str......
  • NestJs 快速入门
    npmi-g@nestjs/cli,nestnewcar-report快速创建car-report 项目。src目录下面有main,controller,service,module文件。main.ts是项目的入口,它引入AppModule,创建服务,监听3000端口。AppModule是一个注解@Module()的类,也称为app模块。由于项目启动时引入AppModule,它也称为根模......
  • js基础学习
    1.js是动态语言,变量类型是可变的。varx=10;varx='pink';2.八进制(0开头)、十六进制(0x开头)3.字符串多个嵌套时,外双内单/外单内双。模版字符串:为了简化字符串拼接。`我今年${age}了`转义字符:4.typeof变量 可以检测类型---控制台颜色也可以检测类型5.转成字符串......
  • 【JS】使用MessageChannel实现深度克隆
    前言通常使用简便快捷的JSON序列化与反序列化实现深克隆,也可以递归实现或者直接使用lodash。但JSON序列化与反序列化无法处理如下的循环引用:实现MessageChannel内部使用了浏览器内置的结构化克隆算法,该算法可以在不同的浏览器上下文之间传递数据。它能够在传递数......
  • nodejs实现将json转化为excel文件
    本文使用node.js实现将json数据转换导出为excel文件。一、安装json2xls库npmijson2xls二、封装转换方法新增jsonToExcel.js文件,该文件用于将json数据(对象数组)转换为excel文件,文件内容如下:constfs=require('fs')//引入文件系统模块constjson2xls=require('json2......
  • 推荐一款神奇的3D倾斜库——vanilla-tilt.js
    3D倾斜库—vanilla-tilt.js话不多说,直接上代码vanilla-tilt.js官网地址<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"/><metaname="viewport"content="width=device-width,initial-scale......
  • webView中,无法利用JS监听APP原生返回后事件
    描述:用uniapp开发的APP,内容页用webView内嵌的h5做的;现在有个需求,在A页面点击新增,uni.navigateTo打开B页面,然后在B页面新增修改完数据之后,uni.navigateBack返回A页面;需要在A页面监听;当页面回到A的时候刷新数据;问题:在A页面用js无法监听到页面返回了;尝试监听方案:1、只能监听页面......
  • [WPF]数据绑定时为何会出现StringFormat失效2T
    在数据绑定过程中,我们经常会使用StringFormat对要显示的数据进行格式化,以便获得更为直观的展示效果,但在某些情况下格式化操作并未生效,例如Button的Content属性以及ToolTip属性绑定数据进行StringFormat时是无效的。首先回顾一下StringFormat的基本用法。StringFormat的用法Str......