利用JavaScript模拟京东按键输入功能


Posted in Javascript onDecember 01, 2020

在看到这个功能的时候我也很惊讶,京东竟然做了这样的一个功能。在京东商城网页版,无论你在什么位置,只需要按下S键,就可以将光标定位到搜索栏进行搜索。虽然说这是一个很不错的功能,但是貌似没有几个人知道。

程序实现很简单,在s键上升的时候搜索框获得焦点就可以了。

<!DOCTYPE html>
<html lang="zh-CN">
<head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width, initial-scale=1.0">
 <title>按下S键光标定位搜索框</title>
</head>
<body>
 <input type="text">
 <script>
  var search = document.querySelector('input');
  document.addEventListener('keyup',function(e){
   //可以使用console.log(e.keyCode)打印一下S键的ASCII值
   if(e.keyCode === 83){
    search.focus();
   }
  })
  //在这里使用keyup而不使用keydown,
  //keydown在键盘按下时触发,焦点放到搜索框,然后会触发S键,使S进入搜索框。
  //而使用keyup,是在键盘返回时进行得到焦点,因此搜索框中不会出现s.
 </script>
</body>
</html>

附:键盘事件keydown()与keyup()

1.键盘按下事件:keydown() 是在键盘按下就会触发

2.键盘弹起事件:keyup() 是在键盘松手就会触发

<h1>keydown()与keyup()事件</h1>
  <div style="margin:10px 0 20px 20px;">
    <input class="keydown k1" type="text" placeholder="监听keydown输入:" />
    按下显示输入的值:<em style="font-weight: 900;color: red;"></em>
  </div>
  <div style="margin:20px 0 0 20px;">
    <input class="keyup k1" type="text" placeholder="监听keyup输入:" />
    松手显示输入的值:<em style="font-weight: 900;color: red;"></em>  
  </div>
  <script src="~/Content/jquery.2.1.4.min.js"></script>
  <script>
    $(".keydown").keydown(function (e) {
      $("em").first().text(e.target.value);
    });
    $(".keyup").keyup(function (e) {
      $("em:last").text(e.target.value);
    });
  </script>

执行上述代码块可以看出

keydown 事件触发在文字还没敲进文本框,这时如果在 keydown 事件中输出文本框中的文本,得到的是触发键盘事件前的文本,而 keyup 事件触发时整个键盘事件的操作已经完成,获得的是触发键盘事件后的文本

总结

到此这篇关于利用JavaScript模拟京东按键输入功能的文章就介绍到这了,更多相关JS模拟京东按键输入内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
javascript中用星号表示预录入内容的实现代码
Jan 08 Javascript
JS教程:window.location使用方法的区别介绍
Oct 04 Javascript
JavaScript访问CSS属性的几种方式介绍
Jul 21 Javascript
javascript实现鼠标拖动改变层大小的方法
Apr 30 Javascript
jquery彩色投票进度条简单实例演示
Jul 23 Javascript
jQuery解析Json实例详解
Nov 24 Javascript
jQuery中借助deferred来请求及判断AJAX加载的实例讲解
May 24 Javascript
webpack配置文件和常用配置项介绍
Apr 28 Javascript
es6新特性之 class 基本用法解析
May 05 Javascript
js实现3D照片墙效果
Oct 28 Javascript
vue ssr服务端渲染(小白解惑)
Nov 10 Javascript
vue实现购物车的小练习
Dec 21 Vue.js
layui使用及简单的三级联动实现教程
Dec 01 #Javascript
vue开发chrome插件,实现获取界面数据和保存到数据库功能
Dec 01 #Vue.js
编写v-for循环的技巧汇总
Dec 01 #Javascript
jquery实现拖拽添加元素功能
Dec 01 #jQuery
创建与框架无关的JavaScript插件
Dec 01 #Javascript
jQuery实现可以扩展的日历
Dec 01 #jQuery
如何使用gpu.js改善JavaScript的性能
Dec 01 #Javascript
You might like
php cc攻击代码与防范方法
2012/10/18 PHP
如何批量替换相对地址为绝对地址(利用bat批处理实现)
2013/05/27 PHP
PHP实现抓取Google IP并自动修改hosts文件
2015/02/12 PHP
PHP版单点登陆实现方案的实例
2016/11/17 PHP
php获取客户端IP及URL的方法示例
2017/02/03 PHP
ThinkPHP实现登录退出功能
2017/06/29 PHP
PHP hebrev()函数用法讲解
2019/02/21 PHP
JavaScript字符串对象toUpperCase方法入门实例(用于把字母转换为大写)
2014/10/17 Javascript
javascript实现倒计时N秒后网页自动跳转代码
2014/12/11 Javascript
jQuery弹出框代码封装DialogHelper
2015/01/30 Javascript
JavaScript使用yield模拟多线程的方法
2015/03/19 Javascript
JavaScript获取页面中超链接数量的方法
2015/11/09 Javascript
js两种拼接字符串的简单方法(必看)
2016/09/02 Javascript
微信小程序之购物车功能
2020/09/23 Javascript
在 Angular6 中使用 HTTP 请求服务端数据的步骤详解
2018/08/06 Javascript
vue 父组件给子组件传值子组件给父组件传值的实例代码
2019/04/15 Javascript
Python抓取京东图书评论数据
2014/08/31 Python
Python多线程编程(一):threading模块综述
2015/04/05 Python
Python的Django REST框架中的序列化及请求和返回
2016/04/11 Python
python requests爬取高德地图数据的实例
2018/11/10 Python
Python 占位符的使用方法详解
2019/07/10 Python
Python操作远程服务器 paramiko模块详细介绍
2019/08/07 Python
django重新生成数据库中的某张表方法
2019/08/28 Python
django商品分类及商品数据建模实例详解
2020/01/03 Python
Python3打包exe代码2种方法实例解析
2020/02/17 Python
python如何把字符串类型list转换成list
2020/02/18 Python
什么是Linux虚拟文件系统VFS
2015/08/25 面试题
打架检讨书100字
2014/01/08 职场文书
《九色鹿》教学反思
2014/02/27 职场文书
2014年社区党建工作汇报材料
2014/11/02 职场文书
2014年高数考试作弊检讨书
2014/12/14 职场文书
2015年农村党员公开承诺事项
2015/04/28 职场文书
社区文明倡议书
2015/04/28 职场文书
当幸福来敲门观后感
2015/06/01 职场文书
2019销售早会主持词
2019/06/27 职场文书
vue-cli4.5.x快速搭建项目
2021/05/30 Vue.js