热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

鼠标事件_鼠标事件和键盘事件

篇首语:本文由编程笔记#小编为大家整理,主要介绍了鼠标事件和键盘事件相关的知识,希望对你有一定的参考价值。事件触发三要素:通过谁触发?通过什么触发?触发后

篇首语:本文由编程笔记#小编为大家整理,主要介绍了鼠标事件和键盘事件相关的知识,希望对你有一定的参考价值。


事件触发三要素:通过谁触发?通过什么触发?触发后要做什么?

事件的写法:

   w3c标准:事件写在行内,但是因为结构和行为要分离,所以我们一般情况下用Javascript的方法来绑定事件,只有再极少数情况下,才将事件写在行内。

事件的绑定方法:

浏览器中的节点(对象).on+事件句柄 = function( ){

     要干什么?(放在浏览器中,不执行,当事件发生的时候再执行。)

}

例:oDiv.Onclick=function(){  alert(1)}

 

事件总结:

事件是给浏览器定义一个预处理函数,当事件触发的时候,执行函数,这就是事件。

事件类型:

只要写事件都要写on

鼠标事件:

1.单击事件

   oDiv.Onclick= function(){}

2.双击事件

   oDiv.Ondbclick= function(){}

3.鼠标右键事件(上下文菜单)

   oDiv.Oncontextmenu= function(){

//context 上下文  

//menu     菜单}

   4.鼠标按下事件

   oDiv.Onmousedowm= function(){

console.log(‘按下’)}

   5.鼠标抬起事件

      oDiv.Onmouseup= function(){

console.log(‘抬起’)}

   6.1鼠标移入

      oDiv.Onmouseover= function(){

console.log(‘鼠标移入over’)}

6.2鼠标移入,但不会再穿过子元素的时候触发

   oDiv.Onmouseenter= function(){

console.log(‘鼠标移入enter’)}

7.1鼠标移出

   oDiv.Onmouseout= function(){

console.log(‘鼠标移出out’)}

7.2鼠标移出,但不会再穿过子元素的时候触发

   oDiv.Onmouseleave= function(){

console.log(‘鼠标移出leave’)}

8.鼠标移动事件

      oDiv.Onmousemove= function(){

console.log(‘移动’)}

 键盘事件:

var oInput = document.querySelector(‘input’)

1.键盘按下

oInput.OnKeydown= function(){

console.log(‘按下’)}

   2.键盘抬起

oInput.OnKeyup= function(){

console.log(‘抬起’)}

   3.键盘敲击

oInput.OnKeypress= function(){

console.log(‘键盘敲击’)}

就算键盘一直按下不抬起这个press事件也会触发

表单事件:

在单选、多选,下拉菜单给这些元素绑定事件一般用change

例:

 技术图片

获取焦点事件:focus

       oText.Onfocus= function(){console.log(‘获得焦点了’)}

失去焦点事件:onblur

      oText.Onblur= function(){console.log(‘失去焦点了’)

      //获取文本框的内容使用value属性

      console.log(this.value)}

 表单提交事件:给整个form外层写

         例:varo Form = document.querySelector(‘#form’)

            oForm.Onsubmit= function(){

              //在表单提交之前做一些处理

              //比如文本框没有内容就不提交

              if(oText.value === ‘ ’){

            //不允许表单提交,return false可以阻止

              return false}

            console.log(‘提交’)}

event事件

    当事件被触发的时候会得到一个信息(事件对象),包含了跟事件相关的一些属性和方法的封装(如:事件发生的元素、键盘按键的状态、鼠标的位置、鼠标按钮的状态等),只有事件在触发的时候才会得到。

  oDiv.Onmousedown=function(e){

               alert(e);}

JS缺德定律:事件对象有兼容问题;

所以我们先做好兼容再去使用事件对象:

  如果e有效那么就是e本身,e无效就等于window.event

  e=e || window.event;

  alert (e.buttons)观察.buttons的返回值;

  鼠标事件及方法;





























属性名


含义


e.buttons


返回鼠标点击按键(1左键,2右键,4中键滚轮)


e.offsetX / offsetY


获取事件触发最近的盒子(事件源)的坐标

距离点击最小的元素边缘的坐标


e.clientX / clientY


获取可视区的坐标(根据浏览器的定位)

无论点那个位置,都固定到浏览器可视区的边缘


e.screenX / screenY


获取整个屏幕的坐标

无论浏览器是多大,都是获取整个屏幕边缘的坐标


e.pageX / e.pageY


获取文档的坐标(包含滚动条)


获取键盘键码

键盘上每一个键都有一个唯一的编码,用来识别当前用户正在操作的是键盘上哪一个键

 

  有兼容问题

  e.keyCode || e.which

  特殊键码:是否按下alt  ctrl  和 shift

  e.altKey

  e.ctrlKey

  e.shiftKey

  返回值是布尔值;

可以用来判断组合键

  if(e.keyCode==13&&e.altKey){

       alert(‘同时按下了enter和alt‘)}

默认行为(浏览器)

有一些html元素默认的行为,比如说a标签,点击后有跳转动作;form表单中的submit类型的input有一个默认提交跳转事件;reset类型的input有重置表单行为。但是,有些时候我们是不需要默认事件的,所以就需要阻止默认事件

return false;

阻止默认行为的兼容写法,只有默认行为的事件才需要写这个

不同事件里,阻止的是不同的行为,即:

if(e.preventDefault) {

   e.preventDefault();

}else {

    window.event.returnValue = false;    

    //return false;}

重点报错:

不能从undefined身上读classlist

Uncaught TypeError: Cannot read property ‘classList‘ of undefined


推荐阅读
  • 本文介绍了作者在开发过程中遇到的问题,即播放框架内容安全策略设置不起作用的错误。作者通过使用编译时依赖注入的方式解决了这个问题,并分享了解决方案。文章详细描述了问题的出现情况、错误输出内容以及解决方案的具体步骤。如果你也遇到了类似的问题,本文可能对你有一定的参考价值。 ... [详细]
  • 利用Visual Basic开发SAP接口程序初探的方法与原理
    本文介绍了利用Visual Basic开发SAP接口程序的方法与原理,以及SAP R/3系统的特点和二次开发平台ABAP的使用。通过程序接口自动读取SAP R/3的数据表或视图,在外部进行处理和利用水晶报表等工具生成符合中国人习惯的报表样式。具体介绍了RFC调用的原理和模型,并强调本文主要不讨论SAP R/3函数的开发,而是针对使用SAP的公司的非ABAP开发人员提供了初步的接口程序开发指导。 ... [详细]
  • 本文详细介绍了如何使用MySQL来显示SQL语句的执行时间,并通过MySQL Query Profiler获取CPU和内存使用量以及系统锁和表锁的时间。同时介绍了效能分析的三种方法:瓶颈分析、工作负载分析和基于比率的分析。 ... [详细]
  • Ihavethefollowingonhtml我在html上有以下内容<html><head><scriptsrc..3003_Tes ... [详细]
  • 本文讨论了在手机移动端如何使用HTML5和JavaScript实现视频上传并压缩视频质量,或者降低手机摄像头拍摄质量的问题。作者指出HTML5和JavaScript无法直接压缩视频,只能通过将视频传送到服务器端由后端进行压缩。对于控制相机拍摄质量,只有使用JAVA编写Android客户端才能实现压缩。此外,作者还解释了在交作业时使用zip格式压缩包导致CSS文件和图片音乐丢失的原因,并提供了解决方法。最后,作者还介绍了一个用于处理图片的类,可以实现图片剪裁处理和生成缩略图的功能。 ... [详细]
  • 本文介绍了绕过WAF的XSS检测机制的方法,包括确定payload结构、测试和混淆。同时提出了一种构建XSS payload的方法,该payload与安全机制使用的正则表达式不匹配。通过清理用户输入、转义输出、使用文档对象模型(DOM)接收器和源、实施适当的跨域资源共享(CORS)策略和其他安全策略,可以有效阻止XSS漏洞。但是,WAF或自定义过滤器仍然被广泛使用来增加安全性。本文的方法可以绕过这种安全机制,构建与正则表达式不匹配的XSS payload。 ... [详细]
  • 本文讨论了编写可保护的代码的重要性,包括提高代码的可读性、可调试性和直观性。同时介绍了优化代码的方法,如代码格式化、解释函数和提炼函数等。还提到了一些常见的坏代码味道,如不规范的命名、重复代码、过长的函数和参数列表等。最后,介绍了如何处理数据泥团和进行函数重构,以提高代码质量和可维护性。 ... [详细]
  • 单页面应用 VS 多页面应用的区别和适用场景
    本文主要介绍了单页面应用(SPA)和多页面应用(MPA)的区别和适用场景。单页面应用只有一个主页面,所有内容都包含在主页面中,页面切换快但需要做相关的调优;多页面应用有多个独立的页面,每个页面都要加载相关资源,页面切换慢但适用于对SEO要求较高的应用。文章还提到了两者在资源加载、过渡动画、路由模式和数据传递方面的差异。 ... [详细]
  • 如何搭建服务器环境php(2023年最新解答)
    导读:本篇文章编程笔记来给大家介绍有关如何搭建服务器环境php的相关内容,希望对大家有所帮助,一起来看看吧。本文目录一览:1、怎么搭建p ... [详细]
  • TerraformVersionTerraformv0.9.11AffectedResource(s)Pleas ... [详细]
  • 本文介绍了闭包的定义和运转机制,重点解释了闭包如何能够接触外部函数的作用域中的变量。通过词法作用域的查找规则,闭包可以访问外部函数的作用域。同时还提到了闭包的作用和影响。 ... [详细]
  • 目录实现效果:实现环境实现方法一:基本思路主要代码JavaScript代码总结方法二主要代码总结方法三基本思路主要代码JavaScriptHTML总结实 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • WPF之Binding初探
      初学wpf,经常被Binding搞晕,以下记录写Binding的基础。首先,盗用张图。这图形象的说明了Binding的机理。对于Binding,意思是数据绑定,基本用法是:1、 ... [详细]
  • React提供三种方式创建Refs:字符串Refs(将被废弃)回调函数RefsReact.createRef(从React16.3开始)第一种方式不推荐使用,原因在此,并且可能会在之后的版本移除。classMyComponentextendsReact.Component{constructor(props){sup ... [详细]
author-avatar
古子同
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有