利用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 相关文章推荐
jQuery 获取URL参数的插件
Mar 04 Javascript
用户代理字符串userAgent可实现的四个识别
Sep 20 Javascript
JS实现兼容性较好的随屏滚动效果
Nov 09 Javascript
JS实现字符串转日期并比较大小实例分析
Dec 09 Javascript
JavaScript中的各种操作符使用总结
May 26 Javascript
js实现控制textarea输入字符串的个数,鼠标按下抬起判断输入字符数
Oct 25 Javascript
微信小程序 toast 详解及实例代码
Nov 09 Javascript
基于BootStrap multiselect.js实现的下拉框联动效果
Jul 28 Javascript
vue中component组件的props使用详解
Sep 04 Javascript
jquery实现垂直无限轮播的方法分析
Jul 16 jQuery
微信小程序导入Vant报错VM292:1 thirdScriptError的解决方法
Aug 01 Javascript
基于element-ui封装表单金额输入框的方法示例
Jan 06 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
php创建多级目录代码
2008/06/05 PHP
PHP 基于文件头的文件类型验证类函数
2012/05/01 PHP
用php守护另一个php进程的例子
2015/02/13 PHP
PHP实现Session入库/存入redis的方法
2017/05/04 PHP
laravel 根据不同组织加载不同视图的实现
2019/10/14 PHP
解决使用attachEvent函数时,this指向被绑定的元素的问题的方法
2007/08/13 Javascript
基于jquery的滑动样例代码
2010/11/20 Javascript
jquery星级插件、支持页面中多次使用
2012/03/25 Javascript
js实现的点击数量加一可操作数据库
2014/05/09 Javascript
Javascript中设置默认参数值示例
2014/09/11 Javascript
Jsonp post 跨域方案
2015/07/06 Javascript
浅谈使用MVC模式进行JavaScript程序开发
2015/11/10 Javascript
javascript多物体运动实现方法分析
2016/01/08 Javascript
BootStrap制作导航条实例代码
2016/05/06 Javascript
javascript url几种编码方式详解
2016/06/06 Javascript
vue加载完成后的回调函数方法
2018/09/07 Javascript
浅谈在vue中使用mint-ui swipe遇到的问题
2018/09/27 Javascript
electron实现qq快捷登录的方法示例
2018/10/22 Javascript
layui实现数据表格点击搜索功能
2020/03/26 Javascript
layer.alert自定义关闭回调事件的方法
2019/09/27 Javascript
[01:07:02]DOTA2-DPC中国联赛 正赛 iG vs PSG.LGD BO3 第三场 2月26日
2021/03/11 DOTA
Python处理JSON数据并生成条形图
2016/08/05 Python
Python cookbook(数据结构与算法)找到最大或最小的N个元素实现方法示例
2018/02/13 Python
Flask实现图片的上传、下载及展示示例代码
2018/08/03 Python
Python装饰器限制函数运行时间超时则退出执行
2019/04/09 Python
Django数据库操作之save与update的使用
2020/04/01 Python
Python openpyxl 插入折线图实例
2020/04/17 Python
Columbia Sportswear法国官网:全球户外品牌
2020/09/25 全球购物
大学生农村教师实习自我鉴定
2013/09/21 职场文书
装修致歉信
2014/01/15 职场文书
任命书怎么写
2014/06/04 职场文书
国家税务局领导班子对照检查材料思想汇报
2014/10/04 职场文书
群众路线学习笔记范文
2014/11/06 职场文书
2016年万圣节活动个人总结
2016/04/05 职场文书
MySQL修炼之联结与集合浅析
2021/10/05 MySQL
详解Golang如何实现支持随机删除元素的堆
2022/09/23 Python