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 相关文章推荐
jBox 2.3基于jquery的最新多功能对话框插件 常见使用问题解答
Nov 10 Javascript
javascript里绝对用的上的字符分割函数总结
Jul 31 Javascript
使用JQuery FancyBox插件实现图片展示特效
Nov 16 Javascript
直接拿来用的页面跳转进度条JS实现
Jan 06 Javascript
jQuery实现从身份证号中获取出生日期和性别的方法分析
Feb 25 Javascript
关于JavaScript 原型链的一点个人理解
Jul 31 Javascript
js实现文本上下来回滚动
Feb 03 Javascript
解决vue+element 键盘回车事件导致页面刷新的问题
Aug 25 Javascript
vue.js 2.*项目环境搭建、运行、打包发布的详细步骤
May 01 Javascript
通过jQuery学习js类型判断的技巧
May 27 jQuery
深入解析koa之中间件流程控制
Jun 17 Javascript
在React中写一个Animation组件为组件进入和离开加上动画/过度效果
Jun 24 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
php 小乘法表实现代码
2009/07/16 PHP
php数组比较实现查找连续数的方法
2015/07/29 PHP
php实现基于openssl的加密解密方法
2016/09/30 PHP
php版阿里云OSS图片上传类详解
2016/12/01 PHP
关于PHP通用返回值设置方法
2017/03/31 PHP
JS backgroundImage控制
2009/05/19 Javascript
jquery trim() 功能源代码
2011/02/14 Javascript
JQuery扩展插件Validate 2通过参数设置验证规则
2011/09/05 Javascript
Ext中下拉列表ComboBox组件store数据格式用法介绍
2013/07/15 Javascript
JS 获取select(多选下拉)中所选值的示例代码
2013/08/02 Javascript
浅析Node.js中的内存泄漏问题
2015/06/23 Javascript
sso跨域写cookie的一段js脚本(推荐)
2016/05/25 Javascript
jQuery实现的省市县三级联动菜单效果完整实例
2016/08/01 Javascript
jQuery实现的瀑布流加载效果示例
2016/09/13 Javascript
关于JS与jQuery中的文档加载问题
2017/08/22 jQuery
如何通过Proxy实现JSBridge模块化封装
2020/10/22 Javascript
Vue路由权限控制解析
2020/11/09 Javascript
python文件操作整理汇总
2014/10/21 Python
实例解析Python中的__new__特殊方法
2016/06/02 Python
Python实现一个简单的验证码程序
2017/11/03 Python
python 信息同时输出到控制台与文件的实例讲解
2018/05/11 Python
python爬虫 基于requests模块的get请求实现详解
2019/08/20 Python
python+selenium select下拉选择框定位处理方法
2019/08/24 Python
python编写实现抽奖器
2020/09/10 Python
详解如何使用Pytest进行自动化测试
2021/01/14 Python
一家专门做特卖的网站:唯品会
2016/10/09 全球购物
美国孩之宝玩具官网:Hasbro Pulse
2019/06/24 全球购物
用你熟悉的语言写一个连接ORACLE数据库的程序,能够完成修改和查询工作
2012/06/11 面试题
毕业实习评语
2014/02/10 职场文书
大二法英学生职业生涯规划范文
2014/02/27 职场文书
工程类专业自荐信范文
2014/03/09 职场文书
党支部承诺书范文
2014/03/28 职场文书
产品设计开发计划书
2014/05/07 职场文书
党建工作经验交流材料
2014/05/25 职场文书
学习社交礼仪心得体会
2016/01/22 职场文书
《黑岩★★射手 DAWN FALL》BD发售宣传CM公开
2022/04/04 日漫