首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

使用JS监听键盘事件

事件说明 我们将键盘后事件的所有属性和方法打印出来(这里以1为例) document.onkeydown = function(event){ console.log(event)...; }  这里面有几个需要注意的属性 key:按键的名称 keyCode:按键的键码 altKey、ctrlKey、shiftKey:当组合(如ctrl+c)时,ctrlKey会变为...true 一、查看所有键 (获取event.key 的按键名称)(获取event.keyCode 的键码) document.onkeydown = function(event){...console.log(":"+event.key+"键:"+event.keyCode); } 下任意按键后的效果: 二、监听回车事件 这里以回车键(键码为13)为例 ,如果需要监听不同的按键...") } } 三、监听组合键 这里以CTRL+A为例 altKey:Alt+*组合键时为true ctrlKey:Ctrl+*组合键时为true shiftKey:Shift+

11.3K10

双击事件(dblclick)时,不触发鼠标(mousedown) 动作事件

mouseover事件和mouseenter事件,都是鼠标进入一个节点时触发。...两者的区别是,mouseenter事件只触发一次,而只要鼠标在节点内部移动,mouseover事件会在子节点上触发多次。...在单击的时候(也就是鼠标的时候)不会执行双击,但是双击的时候会执行两次单击再执行双击事件。 解决的思路:要想双击时不执行单击事件,就使用定时器清除掉两个单击事件,留下一个双击事件。...index, item)"> handleMousedown(event, node, index) { clearTimeout(this.timeOut); // 清除第一个鼠标单击事件...(this.timeOut) console.log(event.target, 'handleDblclick'); }, 关于实现原理 在setTimeout 中的 time=200,大家知道js

57220

使用js在网页上记录鼠标划圈的小程序

Spin-Wheel 实现鼠标在网页上转圈时记录转动圈数的小程序,每转一圈记录一次,同时要是顺时针方向的。...然后通过记录鼠标经过的点与前一个点坐标来判断是在哪个扇区,只要四个扇区都经过了就表示划了一个圆。这样做的话对鼠标轨迹要求不高,只要走的方向对就行了。 ?...因为鼠标在刚开始时只是在某一个点上,只有移动了一段距离后才知道在哪。我们看一下面的图: ? 这里面我标识了10个点,我们可以发现鼠标在经过这10个点说明就是画了一个圈,对吧。...也就是说我们只要将鼠标移动的轨迹记录下来,然后逐个点进行分析,只要符合上面规律的就可以理解为在【右上扇区】。...反之则说明鼠标转反了。 其他的扇区以此类推。 最后发一代码 代码我丢到github上了,https://github.com/mini188/Spin-Wheel

1.3K60

前端js手写题经常忘,记录

context, args); timer = null; },delay); } }}适用场景:DOM 元素的拖拽功能实现(mousemove)搜索联想(keyup)计算鼠标移动的距离...) }); } next();};asyncFunc(function* () { // 生成器函数:控制代码一步步执行 let data = yield readFile('a.js...apply其实就是改一参数的问题Function.prototype.myApply = function(context = window, args) { // this-->func context...轮询服务器是否有新数据时,必定会有一些人会使用 setInterval,然而无论网络状况如何,它都会去一遍又一遍的发送请求,最后的间隔时间可能和原定的时间有很大的出入// 做一个网络轮询,每一秒查询一次数据...setInterval时,某些间隔会被跳过可能多个定时器会连续执行可以这么理解 :每个setTimeout产生的任务会直接push到任务队列中;而setInterval在每次把任务push到任务队列前,都要进行一判断

95240

生产环境的 Node.js 日志记录方案

Photo by Ugne Vasyliute on Unsplash 设置正确的日志记录基础结构可帮助我们查找发生的问题、调试和监视应用程序。...-t abhinavdhasmana/fluentd .docker run -p 9880:9880 --network host abhinavdhasmana/fluentd Node.js...应用 我已经创建了一个用于演示的小型 Node.js 程序,你可以在 https://github.com/abhinavdhasmana/logging-using-EFK 中找到。...弹性搜索的截图示例 让我们检查一如何满足开始时提到的要求: 能够在日志中自由文本搜索: 在 ES 和 kibana 的帮助,我们可以在任何字段上进行搜索以获得结果。...随着向日志中添加更多的数据,系统应该是可扩展的: 我们使用以下环境变量 discovery.type = single-node 在单节点模式开始了弹性搜索。

1.1K30

CSS3之3D魔方鼠标控制酷炫效果

前面文章有制作水晶魔方,这次我们升级一它的功能,通过鼠标控制魔方旋转。 大家先看效果 ? 这酷炫的效果,你怎么看? 鼠标事件 这次效果,咱们需要用JS实现。...3、onmousedown:鼠标时触发事件,不管按住左键/右键还是滑轮都可以 4、onmousemove:鼠标移动实时触发事件 5、onmouseup:鼠标松开时触发事件 6、mousemove:鼠标移动事件...鼠标时,记录鼠标当前所处位置,移动时又可以获取实时位置,用移动时获取的实时位置减去鼠标时的位置,就可以得到鼠标移动的相对位置。鼠标松开,可以结束计算。 ?...,记录起点位置 old_x = e.pageX; old_y = e.pageY; } document.onmousemove = function (e) { // 必须是后移动才有效果...然后我们通过JS控制展开和收起效果 var clickNum = 1; //点击次数 $('.box').children().click(function () { // 如果点击次数是奇数就展开

1.8K40

IIS7js文件启用Gzip后却不压缩怎么解决?

IIS7已经启用静态文件压缩(Gzip)但是死活不压缩,查找后发现是II7MIME类型设置问题   将.js的MIME类型设置为application/javascript   再查看页面,已经启用了...不过,几个天后又发现有的js文件被压缩,有的却没有   查找原因发现是引用js文件是没有设置type   加上type=”text/javascript”类型后问题解决。...IIS7中启用JS压缩的方法   先打开IIS管理,选择我要设置的站点,然后在右边的功能区找到MIME TYPES看看里面是否有.JS的选项,如果没有可以手功加上   有的话把.js的值设置成:application.../x-javascript记住不能少并x-有的网友介绍是application/javascript   偶在WIN2008+IIS7试过,如果不加x-也是不会压缩的。   ...当然最好在上传JS前对JS进行一次压缩这样效果会更好啦。 可以到网上找找TBCompressor工具,这个工具压缩不错   只不过需要你的JS写的标准,不然会出错,分析不了你的JS语法就压缩不了

1.5K30

使用 vue3 的自定义指令给 element-plus 的 el-dialog 增加拖拽功能

element-plus 提供的 el-dialog 对话框功能非常强大,只是美中不足不能通过拖拽的方式改变位置,有点小遗憾,那么怎么办呢?...onmousedown 鼠标的时候记录光标的坐标,进入拖拽状态。 onmouseup 鼠标抬起的时候记录光标的坐标,结束拖拽状态。.../ 鼠标,开始拖拽 domDrag.onmousedown = (e) => { // 判断对话框是否重新打开 if (domDrag.style.marginTop...move 记录拖拽过程中,光标移动的偏移量。 鼠标 onmousedown 鼠标,表示开始拖拽,这时候需要我们记录光标的位置。...找了一原因后发现,在关闭的过渡动画的时候,会把 top 改成 15vh,这样就和我们拖拽后的 top 不一致。 所以在按鼠标的时候需要做一个判断。

3.1K30

每天10个前端小知识 【Day 12】

根据JS的垃圾回收机制,当内存中引用的次数为0的时候内存才会被回收 全局执行上下文中的对象被标记为不再使用才会被释放 内存泄露的几种场景 全局变量过多。...这一种方式首先是以 setTimeout 递归的方式来实现倒计时,然后通过一个变量来记录已经倒计时的秒数。...怎么使用 js 实现拖拽功能?...一个元素的拖拽过程,我们可以分为三个步骤: 第一步是鼠标目标元素 第二步是鼠标保持的状态移动鼠标 第三步是鼠标抬起,拖拽过程结束 这三步分别对应了三个事件,mousedown 事件,mousemove...只有在鼠标的状态移动鼠标我们才会执行拖拽事件,因此我们需要在 mousedown 事件中设置一个状态来标识鼠标已经,然后在 mouseup 事件中再取消这个状态。

12010

如何实现 VSCode 编辑器窗口边界拖拽类似功能

1 效果演示 vue-el-demo/#/aside-toggle-drag 2 实现代码 @/components/AsideToggler 3 实现思路 怎么说呢,写这篇文章就是想记录思路...,本来想画个图说明一的,但是懒得画了,随便说几句吧。...实现边界拖拽调整窗口大小功能,主要是通过鼠标、移动、松开事件来实现的,主要思路如下: 在 mousedown 事件中,我们记录鼠标的初始位置和元素的初始宽度。...同时,我们还需要根据鼠标位置的变化,动态更新鼠标样式,以提示用户当前的拖拽状态。 在 mouseup 事件中,我们清除之前设置的事件监听器,并恢复鼠标样式。...实现过程中,有两个比较巧妙的点: 计算宽度的时候,没有使用 JS 计算,而是直接使用了 CSS 的 clamp() 函数,一目了然。

14510
领券