JS仿淘宝搜索框用户输入事件的实现

发布时间 - 2026-01-11 01:56:32    点击率:

淘宝是我们经常用的一个网上购物平台,打开淘宝网首页,找到淘宝首页的搜索框,如下如所示:

大家可以看到,当页面一打开,搜索框中就可以看到灰色字体“少女高跟鞋”,还有闪烁的光标。当用户点击输入的时候,灰色字消失。当用户清空文本框的所有内容的时候,灰色字自动恢复。

接下来,这个小案例就是要介绍如何实现这种效果,即用户输入事件。

判断用户输入的事件有 oninput 和onpropertychange 。当然,想必你能想到,由于浏览器兼容的问题,他们出现的场合有所不同。 正常浏览器支持oninput ,而 IE6、IE7、IE8 支持的 onpropertychange 。

为了节省时间,不再模仿淘宝CSS样式。

代码及解析 :

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>判断用户输入事件第2遍oninput 和onpropertychange 的用法</title>
</head>
 <style>
    .search {
      width:300px;
      height: 30px;
      margin: 100px auto;
      position: relative;
    }
    .search input {
      width:200px;
      height:25px;
    }
    .search label {
      font-size: 12px;
      color:#ccc;
      position: absolute;
      top:8px;
      left:10px;
      cursor: text;
    }
  </style>
  <script type="text/javascript">
  业务逻辑分析:
//      1.内容为空时,光标和默认字显示在搜索框。自动获取焦点
//      2.当输入内容时,默认字消失。用oninput事件
    window.onload = function () {
      function $(id){ return document.getElementById(id);}
      $("txt").focus();//自动获取光标方法
      $("txt").oninput = $("txt").onpropertychange = function () {
      //oninput 大部分浏览器支持 检测用户表单输入内容
      //onpropertychange ie678 检测用户表单输入内容
        if ( this.value == ""){
          // 首先判断文本框里的值是否为空。注意用双等号!
          $("message").style.display = "block";
        } else {
          $("message").style.display = "none";
        }
      }
    }
  </script> 
<body>
<div class="search">
  <input type="text" id="txt">
  <label for="txt" id="message">仿淘宝搜索框</label>
  <!-- 注意label 中for属性 值指向 input 的id值 ,意思是把label标签和input表单相关联。
  label 元素不会向用户呈现任何特殊效果。当用户在label元素内点击文本, 浏览器就会自动将焦点转到和标签相关联的表单控件上。 -->
</div>
</body>
</html>

效果:

以上所述是小编给大家介绍的JS仿淘宝搜索框用户输入事件的实现,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!


# js  # 淘宝搜索框  # Angularjs material 实现搜索框功能  # 自动完成的搜索框javascript实现  # JavaScript实现搜索框的自动完成功能(一)  # js实现搜索框关键字智能匹配代码  # javascript搜索框效果实现方法  # JS实现仿google、百度搜索框输入信息智能提示的实现方法  # 淘宝  # 表单  # 相关联  # 首页  # 小编  # 为空  # 文本框  # 就会  # 在此  # 你能  # 转到  # 有所不同  # 给大家  # 可以看到  # 所示  # 网上购物  # 所有内容  # 所述  # 给我留言  # 框中 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: C++时间戳转换成日期时间的步骤和示例代码  北京企业网站设计制作公司,北京铁路集团官方网站?  手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?  Win11怎么设置虚拟桌面 Win11新建多桌面切换操作【技巧】  Laravel如何处理文件上传_Laravel Storage门面实现文件存储与管理  Laravel怎么实现API接口鉴权_Laravel Sanctum令牌生成与请求验证【教程】  Laravel如何实现模型的全局作用域?(Global Scope示例)  JS去除重复并统计数量的实现方法  Laravel怎么配置自定义表前缀_Laravel数据库迁移与Eloquent表名映射【步骤】  Windows Hello人脸识别突然无法使用  三星网站视频制作教程下载,三星w23网页如何全屏?  利用 Google AI 进行 YouTube 视频 SEO 描述优化  智能起名网站制作软件有哪些,制作logo的软件?  制作电商网页,电商供应链怎么做?  Laravel如何实现用户注册和登录?(Auth脚手架指南)  夸克浏览器网页跳转延迟怎么办 夸克浏览器跳转优化  英语简历制作免费网站推荐,如何将简历翻译成英文?  laravel怎么通过契约(Contracts)编程_laravel契约(Contracts)编程方法  Android okhttputils现在进度显示实例代码  Windows10怎样连接蓝牙设备_Windows10蓝牙连接步骤【教程】  实例解析Array和String方法  Swift中循环语句中的转移语句 break 和 continue  香港服务器网站卡顿?如何解决网络延迟与负载问题?  矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?  Laravel如何连接多个数据库_Laravel多数据库连接配置与切换教程  网站制作软件免费下载安装,有哪些免费下载的软件网站?  Laravel distinct去重查询_Laravel Eloquent去重方法  如何在服务器上配置二级域名建站?  Laravel怎么实现微信登录_Laravel Socialite第三方登录集成  网站建设整体流程解析,建站其实很容易!  如何自定义建站之星网站的导航菜单样式?  Laravel与Inertia.js怎么结合_使用Laravel和Inertia构建现代单页应用  html5源代码发行怎么设置权限_访问权限控制方法与实践【指南】  如何用狗爹虚拟主机快速搭建网站?  千库网官网入口推荐 千库网设计创意平台入口  html5怎么画眼睛_HT5用Canvas或SVG画眼球瞳孔加JS控制动态【绘制】  如何快速使用云服务器搭建个人网站?  JavaScript数据类型有哪些_如何准确判断一个变量的类型  Laravel如何生成URL和重定向?(路由助手函数)  Python文件操作最佳实践_稳定性说明【指导】  Laravel怎么解决跨域问题_Laravel配置CORS跨域访问  手机怎么制作网站教程步骤,手机怎么做自己的网页链接?  昵图网官网入口 昵图网素材平台官方入口  Laravel如何实现事件和监听器?(Event & Listener实战)  图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?  如何在HTML表单中获取用户输入并结合JavaScript动态控制复利计算循环  Linux系统运维自动化项目教程_Ansible批量管理实战  如何在不使用负向后查找的情况下匹配特定条件前的换行符  如何使用 Go 正则表达式精准提取括号内首个纯字母标识符(忽略数字与嵌套)  车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?