利用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 相关文章推荐
JXTree对象,读取外部xml文件数据,生成树的函数
Apr 02 Javascript
javascript hasFocus使用实例
Jun 29 Javascript
js里怎么取select标签里的值并修改
Dec 10 Javascript
js 固定悬浮效果实现思路代码
Aug 02 Javascript
JS 页面计时器示例代码
Oct 28 Javascript
JS实现iframe自适应高度的方法(兼容IE与FireFox)
Jun 24 Javascript
javaScript实现滚动条事件详解
Mar 24 Javascript
vuejs实现ready函数加载完之后执行某个函数的方法
Aug 31 Javascript
解决vue 引入子组件报错的问题
Sep 06 Javascript
js 实现在2d平面上画8的方法
Oct 10 Javascript
微信小程序获取用户绑定手机号方法示例
Jul 21 Javascript
vue绑定数字类型 value为数字的实例
Aug 31 Javascript
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
修改Zend引擎实现PHP源码加密的原理及实践
2008/04/14 PHP
使用Discuz关键词服务器实现PHP中文分词
2014/03/11 PHP
php更新mysql后获取改变行数的方法
2014/12/25 PHP
php htmlentities()函数的定义和用法
2016/05/13 PHP
PHP GD库相关图像生成和处理函数小结
2016/09/30 PHP
jQuery 全选效果实现代码
2009/03/23 Javascript
jquery 最简单易用的表单验证插件
2010/02/27 Javascript
cookie在javascript中的使用技巧以及隐私在服务器端的设置
2012/12/03 Javascript
解析JavaScript中delete操作符不能删除的对象
2013/12/03 Javascript
Javascript中call与apply的学习笔记
2014/09/22 Javascript
JavaScript实现鼠标滑过处生成气泡的方法
2015/05/16 Javascript
js支持键盘控制的左右切换立体式图片轮播效果代码分享
2015/08/26 Javascript
学习jQuey中的return false
2015/12/18 Javascript
NodeJS实现阿里大鱼短信通知发送
2016/01/17 NodeJs
yarn与npm的命令行小结
2016/10/20 Javascript
详谈js中数组(array)和对象(object)的区别
2017/02/27 Javascript
javascript回调函数的概念理解与用法分析
2017/05/27 Javascript
bootstrap switch开关组件使用方法详解
2017/08/22 Javascript
浅谈layui 数据表格前后台传值的问题
2019/09/12 Javascript
浅谈layui里的上传控件问题
2019/09/26 Javascript
修复 Django migration 时遇到的问题解决
2018/06/14 Python
简单了解python代码优化小技巧
2019/07/08 Python
Django 实现前端图片压缩功能的方法
2019/08/07 Python
Python和Sublime整合过程图示
2019/12/25 Python
python GUI库图形界面开发之PyQt5控件数据拖曳Drag与Drop详细使用方法与实例
2020/02/27 Python
matplotlib grid()设置网格线外观的实现
2021/02/22 Python
HTML5画渐变背景图片并自动下载实现步骤
2013/11/18 HTML / CSS
康拓普公司Java笔面试
2016/09/23 面试题
校长师德师风自我剖析材料
2014/09/29 职场文书
党性分析自查总结
2014/10/14 职场文书
2014年保密工作总结
2014/11/22 职场文书
大学生自荐材料范文
2014/12/30 职场文书
资料员岗位职责范本
2015/04/13 职场文书
公司管理制度范本
2015/08/03 职场文书
“爱眼护眼,提前预防近视”倡议书3篇
2019/10/30 职场文书
MySQL索引失效场景及解决方案
2022/07/23 MySQL