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 相关文章推荐
基础的prototype.js常用函数及其用法
Mar 10 Javascript
Javascript 鼠标移动上去小三角形滑块缓慢跟随效果
Apr 26 Javascript
js函数中onmousedown和onclick的区别和联系探讨
May 19 Javascript
js实现通用的微信分享组件示例
Mar 10 Javascript
JavaSacript中charCodeAt()方法的使用详解
Jun 05 Javascript
SelecT下拉框选中和取值的解决方法
Nov 22 Javascript
Vuejs仿网易云音乐实现听歌及搜索功能
Mar 30 Javascript
关于vue-router的beforeEach无限循环的问题解决
Sep 09 Javascript
vue项目打包后打开页面空白解决办法
Jun 29 Javascript
Vue混入mixins滚动触底的方法
Nov 22 Javascript
javascript 原型与原型链的理解及应用实例分析
Feb 10 Javascript
详解JS数组方法
Nov 20 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
外媒评选出10支2020年最受欢迎的Dota2战队
2021/03/05 DOTA
在同一窗体中使用PHP来处理多个提交任务
2008/05/08 PHP
Swoole源码中如何查询Websocket的连接问题详解
2020/08/30 PHP
利用json获取字符出现次数的代码
2012/03/22 Javascript
JS获取页面input控件中所有text控件并追加样式属性
2013/02/25 Javascript
js/jquery解析json和数组格式的方法详解
2014/01/09 Javascript
javascript+HTML5的Canvas实现Lab单车动画效果
2015/08/07 Javascript
jquery实现点击弹出带标题栏的弹出层(从右上角飞入)效果
2015/09/19 Javascript
提升jQuery的性能需要做好七件事
2016/01/11 Javascript
快速掌握Node.js之Window下配置NodeJs环境
2016/03/21 NodeJs
JS函数arguments数组获得实际传参数个数的实现方法
2016/05/28 Javascript
jQuery soColorPacker 网页拾色器
2016/06/22 Javascript
jQuery基于事件控制实现点击显示内容下拉效果
2017/03/07 Javascript
vue2中引用及使用 better-scroll的方法详解
2018/11/15 Javascript
微信小程序如何播放腾讯视频的实现
2019/09/20 Javascript
JavaScript DOM常用操作代码汇总
2020/07/03 Javascript
nuxt引入组件和公共样式的操作
2020/11/05 Javascript
[54:05]DOTA2-DPC中国联赛定级赛 SAG vs iG BO3第一场 1月9日
2021/03/11 DOTA
python基于urllib实现按照百度音乐分类下载mp3的方法
2015/05/25 Python
Python实现屏幕截图的代码及函数详解
2016/10/01 Python
python3 读取Excel表格中的数据
2018/10/16 Python
Python Pandas 箱线图的实现
2019/07/23 Python
python实现tail实时查看服务器日志示例
2019/12/24 Python
深入分析python 排序
2020/08/24 Python
分享unittest单元测试框架中几种常用的用例加载方法
2020/12/02 Python
Python爬虫开发与项目实战
2020/12/16 Python
详解python的变量缓存机制
2021/01/24 Python
python解决OpenCV在读取显示图片的时候闪退的问题
2021/02/23 Python
css3的过滤效果简单实例
2016/08/03 HTML / CSS
汽车制造与装配专业自荐信范文
2014/01/02 职场文书
网上蛋糕店创业计划书
2014/01/24 职场文书
单身申明具结书
2015/02/26 职场文书
金陵十三钗观后感
2015/06/04 职场文书
小学教师师德培训心得体会
2016/01/09 职场文书
MySQL系列之三 基础篇
2021/07/02 MySQL
使用Python开发贪吃蛇游戏 SnakeGame
2022/04/30 Python