利用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 相关文章推荐
轻量级 JS ToolTip提示效果
Jul 20 Javascript
那些年,我还在学习jquery 学习笔记
Mar 05 Javascript
Javascript中的异步编程规范Promises/A详细介绍
Jun 06 Javascript
js自动生成的元素与页面原有元素发生堆叠的解决方法
Sep 04 Javascript
javascript简单实现等比例缩小图片的方法
Jul 27 Javascript
JavaScript实现鼠标点击导航栏变色特效
Feb 08 Javascript
JS实现css hover操作的方法示例
Apr 07 Javascript
vue.js的安装方法
May 12 Javascript
Node.js 实现简单的接口服务器的实例代码
May 23 Javascript
JavaScript实现带有子菜单和控件的slider轮播图效果
Nov 01 Javascript
实例详解带参数的 npm script
May 28 Javascript
Vue监视数据的原理详解
Feb 24 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数组总结篇(一)
2008/09/30 PHP
PHP中创建空文件的代码[file_put_contents vs touch]
2012/01/20 PHP
PHP unlink与rmdir删除目录及目录下所有文件实例代码
2018/02/07 PHP
PHP实现时间日期友好显示实现代码
2019/09/08 PHP
jQuery技巧总结
2011/01/01 Javascript
利用javascript的面向对象的特性实现限制试用期
2011/08/04 Javascript
jquery文字上下滚动的实现方法
2013/03/22 Javascript
使用node.js 制作网站前台后台
2014/11/13 Javascript
提交按钮的name='submit'引起的js失效问题及原因
2015/02/25 Javascript
Javascript设计模式之观察者模式的多个实现版本实例
2015/03/03 Javascript
js判断手机号运营商的方法
2015/10/23 Javascript
jQuery Ajax 异步加载显示等待效果代码分享
2016/08/01 Javascript
Javascript 详解封装from表单数据为json串进行ajax提交
2017/03/29 Javascript
easyui-datagrid特殊字符不能显示的处理方法
2017/04/12 Javascript
微信小程序canvas写字板效果及实例
2017/06/15 Javascript
基于 flexible 的 Vue 组件:Toast -- 显示框效果
2017/12/26 Javascript
vue如何通过id从列表页跳转到对应的详情页
2018/05/01 Javascript
Vue 中如何正确引入第三方模块的方法步骤
2019/05/05 Javascript
vue实现表单录入小案例
2019/09/27 Javascript
js实现图片跟随鼠标移动效果
2019/10/16 Javascript
使用SAE部署Python运行环境的教程
2015/05/05 Python
python学习教程之Numpy和Pandas的使用
2017/09/11 Python
python编程通过蒙特卡洛法计算定积分详解
2017/12/13 Python
Python matplotlib绘制图形实例(包括点,曲线,注释和箭头)
2020/04/17 Python
Conforama西班牙:您的家具、装饰和电器商店
2020/02/21 全球购物
Arti-shopping中文官网:大型海外商品一站式直邮平台
2020/03/23 全球购物
神话般的珠宝:Ross-Simons
2020/07/13 全球购物
如何配置、使用和清除Smarty缓存
2015/12/23 面试题
统计员岗位职责
2013/11/14 职场文书
实习自我鉴定
2013/12/15 职场文书
《油菜花开了》教学反思
2014/02/22 职场文书
大二学生学年自我鉴定
2014/09/12 职场文书
对照四风自我剖析材料
2014/10/07 职场文书
2014年团总支工作总结
2014/11/21 职场文书
在酒桌上的敬酒词
2015/08/12 职场文书
redis不能访问本机真实ip地址的解决方案
2021/07/07 Redis