javascript实现的星座查询

今天在这个网站http://xzxys.wiicha.com/看到查询星座幸运色的效果,想研究一下代码,结果右键禁用。后来参考了一下别人的代码,琢磨着先实现了一下星座查询的功能,输入月份和日期四位数后,可以查询属于哪个星座,星座效果如下。
在这里插入图片描述
用CSS代码美化了一下输入框,js代码主要是使用了indexOf判断是否有不合法输入,对这个方法用得不太熟,特意拿来练手,12个月份使用switch语句判断。完整代码如下:

<!doctype html>
<html>
	<head>
		<meta charset="utf-8">
		<title>星座查询</title>
		<style>
			* {
				margin: 0;
				padding: 0;
			}

			h2 {
				text-align: center;
				margin-top: 80px;
				color:#333;
			}

			#inquire {
				margin: 50px auto;
				width: 344px;
			}

			#inquire input {
				float: left;
				outline: none;
			}

			#inquire:after {

				content: "";
				display: block;
				height: 0;
				clear: both;
				visibility: hidden;
			}

			#inputstar {
				width: 200px;
				height: 43px;
				line-height: 43px;
				padding-left: 20px;
				border: 1px solid #ccc;
				border-right: none;
				border-radius: 5px 0 0 5px;
				font-size: 20px;
				/* 左上角 左下角*/
			}

			#btn1 {
				width: 120px;
				height: 45px;
				line-height: 45px;
				border: 1px solid #ccc;
				background: #EAEAEA;
				border-radius: 0 5px 5px 0;
				/* 右上角 右下角*/
				cursor: pointer;
				color: #444;
				font-size: 16px;
			}

			.star {
				font-size: 36px;
				text-align: center;
				color: #ff8400;
				margin: 60px auto;
				width: 344px;
			}
		</style>
	</head>

	<body>
		<h2>请输入您的生日(示例:12月26日输入1226,3月5日请输入0305)</h2>
		<div id='inquire'>
			<input type="text" id="inputstar">
			<input type="button" value="查询星座" onclick="queryStar()" id='btn1' />
		</div>
		<div class='star'></div>

		<script>
			function queryStar() {
				var starSign = document.querySelector("#inputstar").value; //获取用户输入的月份和日期
				if (starSign.length != 4) {
					alert('输入有误,请重新输入!');
					return false;
				}
				var dispStar = document.querySelector(".star");
				var month = starSign.substring(0, 2); //取前2位,也就是月份
				var date = parseInt(starSign.substring(2)); //取后2位,也就是日期,并转换为整型
				var arrMonth = ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12']
				var arrDate = [01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
					26, 27, 28, 29, 30, 31
				]

				var isMonth = arrMonth.indexOf(month);
				if (isMonth == -1) {
					alert('月份有误!请修改输入');
					return false;
				}
				
				var isDate = arrDate.indexOf(date)
				if (isDate == -1) {
					alert('日期有误!请修改输入');
					return false;
				}

				if ((month == "02") && (date > 29)) {
					alert('输入有误,请重新输入!');
					return false;
				}
				switch (month) {
					case "01":
						if (date < 20) {
							dispStar.innerHTML = "摩羯座";
						} else
							dispStar.innerHTML = "水瓶座";
						break;
					case "02":
						if (date < 19) {
							dispStar.innerHTML = "水瓶座";
						} else dispStar.innerHTML = "双鱼座";
						break;
					case "03":
						if (date < 21) {
							dispStar.innerHTML = "双鱼座"
						} else dispStar.innerHTML = "白羊座";
						break;
					case "04":
						if (date < 20) {
							dispStar.innerHTML = "白羊座";
						} else dispStar.innerHTML = "金牛座";
						break;
					case "05":
						if (date < 21) {
							dispStar.innerHTML = "金牛座";
						} else dispStar.innerHTML = "双子座";
						break;
					case "06":
						if (date < 22) {
							dispStar.innerHTML = "双子座";
						} else dispStar.innerHTML = "巨蟹座";
						break;
					case "07":
						if (date < 23) {
							dispStar.innerHTML = "巨蟹座";
						} else dispStar.innerHTML = "狮子座";
						break;
					case "08":
						if (date < 23) {
							dispStar.innerHTML = "狮子座";
						} else dispStar.innerHTML = "处女座";
						break;
					case "09":
						if (date < 23) {
							dispStar.innerHTML = "处女座";
						} else dispStar.innerHTML = "天秤座";
						break;
					case "10":
						if (date < 24) {
							dispStar.innerHTML = "天秤座";
						} else dispStar.innerHTML = "天蝎座";
						break;
					case "11":
						if (date < 23) {
							dispStar.innerHTML = "天蝎座";
						} else dispStar.innerHTML = "射手座";
						break;
					case "12":
						if (date < 22) {
							dispStar.innerHTML = "射手座";
						} else dispStar.innerHTML = "摩羯座";
						break;
				}
			}
		</script>
	</body>
</html>

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

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

相关文章

如何做代币分析:以 INJ 币为例

如何做代币分析&#xff1a;以 INJ 币为例 作者&#xff1a; lesleyfootprint.network 编译&#xff1a;cicifootprint.network 数据源&#xff1a;INJ 代币仪表板 &#xff08;仅包括以太坊数据&#xff09; 在加密货币和数字资产领域&#xff0c;代币分析起着至关重要的作…

网络学习:MPLS技术基础知识

目录 一、MPLS技术产生背景 二、MPLS网络组成&#xff08;基本概念&#xff09; 1、MPLS技术简介&#xff1a;Multiprotocol Lable Switching&#xff0c;多协议标签交换技术 2、MPLS网络组成 三、MPLS的优势 四、MPLS的实际应用 一、MPLS技术产生背景 1、IP采用最长掩码…

跨地域传文件时 面临的安全、效率等问题要如何解决?

近年来&#xff0c;企业在异国、异地设立分支机构的越来越多&#xff0c;在日常经营中&#xff0c;企业总部和分支机构间存在平行、垂直及互相交叉的管理模式和业务往来需求&#xff0c;因此&#xff0c;大型企业存在必然的跨地域传文件场景&#xff0c;比如跨地理域文件交换、…

6个常见的动态内存的错误和动态内存经典笔试题

和黛玉学编程..........> 这篇的代码对应知识点就在上一篇啦 常见的动态内存的错误 对NULL指针的解引用操作 void test() { int *p (int *)malloc(INT_MAX/4); *p 20; free(p); } 如果P的值是空指针就会有问题&#xff0c;所以一般都会先进行判断 对动态开辟空间的越…

【无刷电机学习】光耦HCNR200基本原理及应用(资料摘抄)

【仅作自学记录&#xff0c;不出于任何商业目的。如有侵权&#xff0c;请联系删除&#xff0c;谢谢&#xff01;】 本文摘抄翻译自&#xff1a; https://docs.broadcom.com/wcs-public/products/application-notes/application-note/331/6/av02-1333en-an_5394-16jul10.pdfhtt…

【leetcode】反转字符串 双指针

/*** param {character[]} s* return {void} Do not return anything, modify s in-place instead.*/ var reverseString function(s) {let start0;let ends.length-1;while(start<end){[s[start],s[end]][s[end],s[start]];start;end--;}return s;};双指针&#xff0c;一头…

ST32/GD32——UART串口通信

芯片选型 Ciga Device — GD32F470系列 串口通信 串口通信指的是通过串行通信接口进行数据传输的通信方式&#xff0c;通常用于短距离、低速率的数据传输。 串口通信可以使用不同的串行通信协议和接口&#xff0c;常见的串口通信协议有UART、USART、RS-232、RS-485、SPI、I…

Mybatis_plus-基础

一、简介 1.概述 文档地址&#xff1a;https://baomidou.com/ 概述&#xff1a;MyBatis-Plus (opens new window)&#xff08;简称 MP&#xff09;是一个 MyBatis (opens new window) 的增强工具&#xff0c;在 MyBatis 的基础上只做增强不做改变&#xff0c;为简化开发、提…

解密Lawnchair:打造个性化极致的Android桌面体验

解密Lawnchair&#xff1a;打造个性化极致的Android桌面体验 1. 简介 Lawnchair是一款知名的Android桌面定制工具&#xff0c;旨在为用户提供个性化极致的桌面体验。作为一个开源项目&#xff0c;Lawnchair融合了简洁、灵活和强大的特点&#xff0c;让用户能够自由定制其Andro…

Java基于springboot的课程作业管理系统

摘 要 随着科学技术的飞速发展&#xff0c;社会的方方面面、各行各业都在努力与现代的先进技术接轨&#xff0c;通过科技手段来提高自身的优势&#xff0c;课程作业管理系统当然也不能排除在外。课程作业管理系统是以实际运用为开发背景&#xff0c;运用软件工程原理和开发方法…

1.线程池的实现机制

为什么使用线程池&#xff1f; 在处理并发问题时&#xff0c;倘若我们一个一个创建线程池再进行线程池的销毁&#xff0c;不但浪费资源还增加了上下文切换的开销。线程池主要是以空间来换取时间。 如图所示给任务队列分配在线程池里线程。 线程池用到的模式是半同步、半异步模…

机器学习 | 四大常用机器学习Python库介绍

今天这篇我们介绍下Python中常用的机器学习库(机器学习、深度学习啥的&#xff0c;小编还是建议使用Python进行建模编写哈)&#xff0c;也算是本公号机器学习的第一篇推文&#xff0c;主要内容如下&#xff1a; 机器学习常用四大Python库 关于机器学习的我想说的话 所有完整代…

mysql高可用架构设计

一、主从架构 1.主从复制 1.主从复制原理 Mysql的主从复制中主要有三个线程&#xff1a; master&#xff08;binlog dump thread&#xff09;、slave&#xff08;I/O thread 、SQL thread&#xff09; &#xff0c;Master一条线程和Slave中的两条线程。 整体上来说&#xff…

如何合理布局子图--确定MATLAB的subplot子图位置参数

确定MATLAB的subplot子图位置参数 目录 确定MATLAB的subplot子图位置参数摘要1. 问题描述2. 计算过程2.1 确定子图的大小和间距2.2 计算合适的figure大小2.3 计算每个子图的position数据 3. MATLAB代码实现3.1 MATLAB代码3.2 绘图结果 4. 总结 摘要 在MATLAB中&#xff0c;使用…

2024-简单点-picamera2除了文档还有哪里可以学习实例?

picamera2学习例子 去github的picamera2库&#xff0c;找app和examples目录&#xff0c;然后学习

重建大师实时建模支持华为的npu吗?

可以支持适配。重建大师推出信创版&#xff0c;可全面支撑国产信创环境。 重建大师是一款专为超大规模实景三维数据生产而设计的集群并行处理软件&#xff0c;输入倾斜照片&#xff0c;激光点云&#xff0c;POS信息及像控点&#xff0c;输出高精度彩色网格模型&#xff0c;可一…

NumpyPython 笔记1 3.4

array.ndim 几维 array.shape 几行&#xff0c;几列 array.size 存在多少个元素 np.array 转化为矩阵 dtype 确定类型&#xff0c;并且确定精度64&#xff1f;32&#xff1f;16&#xff1f;数字越小&#xff0c;越不精确 二维 np.zeros 生成零矩阵&#xff0c;并且规…

uniapp实战:父子组件传参之子组件数量动态变化

需求说明 现有的设置单元列表,每个带有虚线加号的可以看做是一组设置单元,点击加号可以添加一组设置单元.点击设置单元右上角可以删除对应的设置单元. 实现思路说明 利用数组元素添加或是删除的方式实现页面数量动态变化.由于每个设置单元内容都相同所以单独封装了一个子组件.…

开发知识点-Ruby

Ruby https://m.runoob.com/ruby/ruby-installation-windows.htmlhttps://rubyinstaller.org/downloads/

新书速览|Photoshop+CorelDRAW商业广告设计入门到精通:视频教学版

8章实例剖析商业案例&#xff0c;帮你提升设计效率。商业实战案例&#xff0c;真正掌握设计技能&#xff01; 本书内容 《PhotoshopCorelDRAW商业广告设计入门到精通&#xff1a;视频教学版》以创作精美、类型多样的案例&#xff0c;全面地讲解Photoshop与CorelDRAW软件相结合…