JavaScript实现京东快递单号实时预览效果

作者:小括号

时间:2026-10-23

浏览:82

本文介绍如何使用JavaScript实现京东快递单号的实时查询预览效果。通过监听键盘事件,将输入框内容同步至上方大字号容器,并根据输入状态控制容器的显示与隐藏,同时区分keydown、keypress与keyup事件在文本框中的触发时机。

文章目录

京东快递单号实时预览实现

本文通过一个具体案例,演示如何利用JavaScript模拟京东快递单号的查询交互效果,供读者参考学习。

核心需求是:当用户在文本输入框中输入字符时,输入框上方需自动显示对应的大字号内容,实现实时预览。

实现逻辑分析如下:

  • 首先,当用户开始输入内容时,上方用于展示大字号的大盒子应当自动显现(其字号设置得比输入框更大)。
  • 其次,需要监听表单的键盘事件,以便实时检测用户的输入行为。
  • 在检测到输入时,获取快递单号输入框中的当前值(value),并将其赋值给上方大盒子的内容,实现数据同步。
  • 若快递单号输入框内的内容为空,则需隐藏上方大盒子,避免显示空白区域。
  • 此外,当输入框失去焦点时,无论是否有内容,上方大盒子也应保持隐藏状态。

需注意键盘事件在文本框中的特性:keydown和keypress事件触发时,文字尚未落入文本框;而keyup事件触发时,文本已完整落入文本框中。


<style>
  * {
  padding: 0;
  margin: 0;
  }
  .search {
  position: relative;
  width: 178px;
  margin: 100px;
  }
  .con {
  display: none;
  position: absolute;
  top: -48px;
  width: 171px;
  border: 1px solid rgba(0, 0, 0, 0.2);
  box-shadow: 0 2px 4px rgba(0, 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" placeholder="请输入您的快递单号" class="jd" />
 </div>
 <script>
  var con = document.querySelector(".con");
  var jd_input = document.querySelector(".jd");
  jd_input.addEventListener("keyup", function () {
  if (this.value == "") {
   con.style.display = "none";
  } else {
   con.style.display = "block";
   con.innerHTML = 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>

以上即为实现该功能的全部关键步骤,希望能为读者的学习提供有益帮助,也欢迎大家继续支持本站获取更多技术分享。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章