js实现京东快递单号查询效果

实现目标

输入框输入,其顶部会出现一个放大框效果的盒子,获取并展示实时输入信息,失去焦点后放大框会自动消失。

代码实现:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style type="text/css">
		*{
				margin: 0;
				padding: 0;
		}
		.jd{
			height: 30px;
			box-shadow: 0 2px 4px rgba(0,0,0,.2);
		}
		.search{
			position: relative;
			margin: 100px auto;
			width: 178px;
		}
			.con{
				display: none;
				position: absolute;
				top: -40px;
				width: 171px;
				border: 1px solid rgba(0,0,0,.2);
				box-shadow: 0 2px 4px rgba(0,0,0,.2);
				padding: 5px 0;
				font-size: 18px;
				line-height: 20px;
				color: #333;
			}
			/* 放大框底部小三角绘制 */
			.con::before{
				content: '';
				width: 0;
				height: 0;
				position: absolute;
				top: 28px;
				left: 18px;
				border: 8px solid #000;
				border-style: solid dashed dashed;
				border-color: #fff transparent transparent;
				
			}
		</style>
	</head>
	<body>
		<div class="search">
			<div class="con"></div>
			<input type="text" name="" class="jd" placeholder="请输入您的快递单号"/>
		</div>
		<script type="text/javascript">
			var con = document.querySelector('.con');
			var jd_input = document.querySelector('.jd');
			// keypress 和 keydown 在文本框里的特点:他们两个事件触发时,文字还没有落入文本框
			jd_input.addEventListener('keyup',function(e){
				if(this.value === ''){
					con.style.display = 'none';
				}else{
					con.style.display = 'block';
					con.innerText = this.value;
				}
			})
			// 失去焦点隐藏盒子
			jd_input.addEventListener('blur',function(){
				con.style.display = 'none';
			})
			// 获得焦点显示盒子
			jd_input.addEventListener('focus',function(){
				if(this.value !=='' ){
					con.style.display = 'block';
				}
			})
		</script>
	</body>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值