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


Posted in Javascript onJune 19, 2017

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

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

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

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

判断用户输入的事件有 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仿淘宝搜索框用户输入事件的实现,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
在第一个input框内输入内容.textarea自动得到第一个文件框的值的javascript代码
Apr 20 Javascript
jquery自定义类似$.ajax()的方法实现代码
Aug 13 Javascript
JavaScript框架是什么?怎样才能叫做框架?
Jul 01 Javascript
jQuery 3.0 的 setter和getter 模式详解
Jul 11 Javascript
zepto与jquery的区别及zepto的不同使用8条小结
Jul 28 Javascript
javascript和jQuery中的AJAX技术详解【包含AJAX各种跨域技术】
Dec 15 Javascript
vue-cli入门之项目结构分析
Apr 20 Javascript
详解Angular 4.x NgTemplateOutlet
May 24 Javascript
Vue axios 中提交表单数据(含上传文件)
Jul 06 Javascript
webpack引入eslint配置详解
Jan 22 Javascript
JS求解两数之和算法详解
Apr 28 Javascript
浏览器JavaScript调试功能无法使用解决方案
Sep 18 Javascript
jQuery实现下拉菜单的实例代码
Jun 19 #jQuery
微信小程序实现皮肤功能(夜间模式)
Jun 18 #Javascript
关于javascript作用域的常见面试题分享
Jun 18 #Javascript
Angular.js中下拉框实现渲染html的方法
Jun 18 #Javascript
Webpack打包css后z-index被重新计算的解决方法
Jun 18 #Javascript
利用JavaScript对中文(汉字)进行排序实例详解
Jun 18 #Javascript
JavaScript ES6中const、let与var的对比详解
Jun 18 #Javascript
You might like
磨咖啡豆的密诀
2021/03/03 冲泡冲煮
php gd2 上传图片/文字水印/图片水印/等比例缩略图/实现代码
2010/05/15 PHP
php实现天干地支计算器示例
2014/03/14 PHP
中高级PHP程序员应该掌握哪些技术?
2016/09/23 PHP
php中static 静态变量和普通变量的区别
2016/12/01 PHP
window.location.hash 使用说明
2010/11/08 Javascript
jQuery制作仿腾讯web qq用户体验桌面
2013/08/20 Javascript
基于jQuery实现仿百度首页换肤背景图片切换代码
2015/08/25 Javascript
JS实现动态添加DOM节点和事件的方法示例
2017/04/28 Javascript
运用jQuery写的验证表单(实例讲解)
2017/07/06 jQuery
JSON 数据格式详解
2017/09/13 Javascript
webstrom Debug 调试vue项目的方法步骤
2018/07/17 Javascript
koa-router路由参数和前端路由的结合详解
2019/05/19 Javascript
javascript实现图片轮播代码
2019/07/09 Javascript
微信小程序拼接图片链接无底洞深入探究
2019/09/03 Javascript
React中使用Vditor自定义图片详解
2020/12/25 Javascript
Python列表计数及插入实例
2014/12/17 Python
使用Python的Flask框架实现视频的流媒体传输
2015/03/31 Python
python版opencv摄像头人脸实时检测方法
2018/08/03 Python
Flask框架学习笔记之路由和反向路由详解【图文与实例】
2019/08/12 Python
django实现类似触发器的功能
2019/11/15 Python
解决tensorflow打印tensor有省略号的问题
2020/02/04 Python
django序列化时使用外键的真实值操作
2020/07/15 Python
Python 中如何写注释
2020/08/28 Python
Max&Co官网:意大利年轻女性时尚品牌
2017/05/16 全球购物
白兰氏健康Mall:BRAND’S
2017/11/13 全球购物
历史系毕业生自荐信
2013/10/28 职场文书
小学一年级学生评语
2014/04/22 职场文书
中央空调节能方案
2014/06/15 职场文书
张家口市高新区党工委群众路线教育实践活动整改方案
2014/10/25 职场文书
材料员岗位职责范本
2015/04/11 职场文书
2015年教师教学工作总结
2015/04/28 职场文书
诉讼和解协议书
2016/03/23 职场文书
导游词之白茶谷九龙峡
2019/10/23 职场文书
python如何读取和存储dict()与.json格式文件
2022/06/25 Python
SQL bool盲注和时间盲注详解
2022/07/23 SQL Server