需要达到功能有下面几点:
1.当输入内容的时候上面的放大框要显示出来并且是显示下面输入的内容
2.当框中没有输入内容的时候就不显示
3.当输入完毕文本框失去焦点的时候上面的放大框隐藏
4.当获得焦点的时候先判断文本框中是否有内容,如果有内容的话就显示
完整代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
.search {
width: 300px;
height: 300px;
/* background-color: pink; */
margin: 200px auto;
}
.jd {
width: 130px;
height: 15px;
outline: none;
border: 1px solid #ccc;
}
.con {
position: relative;
visibility: hidden;
width: 130px;
height: 18px;
margin-bottom: 10px;
box-shadow: 0px 1px 6px rgba(0, 0, 0, .2);
}
.con .small {
position: absolute;
top: 15px;
left: 15px;
width: 8px;
height: 8px;
/* border-right: 1px solid white;
border-bottom: 1px solid white; */
background-color: white;
transform: rotate(45deg);
}
</style>
</head>
<body>
<div class="search">
<div class="con">123
<div class="small"></div>
</div>
<input type="text" placeholder="请输入您的快递单号" class="jd">
</div>
<script>
// 获取输入框
var ipt = document.querySelector('.jd');
// 获取上面显示的框
var con = document.querySelector('.con');
// 添加键盘事件
ipt.addEventListener('keyup', function(e) {
// 获取输入的内容
var content = ipt.value;
// 判断输入的内容是否为空
if (content != '') {
// 不为空就显示上面的盒子
con.innerHTML = content;
con.style.visibility = 'visible';
} else {
con.style.visibility = 'hidden';
}
})
// 失去焦点隐藏盒子
ipt.addEventListener('blur', function() {
con.style.visibility = 'hidden';
})
// 获得焦点要是有内容就显示出来
ipt.addEventListener('focus', function() {
if (this.value != '') {
con.style.visibility = 'visible';
}
})
</script>
</body>
</html>
效果展示: