事件

    科技2022-07-10  108

    什么是事件? 人与机的交互就是事件。

    事件类型

    ui事件 onscroll 滚动条事件 onload 页面加载触发 unload 页面关闭触发 onselect 选中文本时触发 onresize 改变浏览器窗口触发 onabort 图像加载被中断触发 error 错误信息时触发 onchange 当改变一个元素的值且失去焦点时

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body style="height:3000px"> <input type="text" name="" id="" value="哈哈哈哈" /> </body> <script type="text/javascript"> // window.οnscrοll=function(){ // var h=document.documentElement.scrollTop||document.body.scrollTop; // console.log(h) // } var oinput=document.querySelector('input'); oinput.onselect=function(){ console.log(12312) } </script> </html>

    焦点事件 onfocus 获得焦点事件(没有冒泡,浏览器都支持) onblur 失去焦点事件(没有冒泡,浏览器都支持) onfocusin 获得焦点事件(有冒泡,IE支持) onfocusout 失去焦点事件(有冒泡,IE支持)

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"> div{ width: 300px; height: 300px; background: red; } </style> </head> <body> <div> <input type="text" name="" id="" value="" /> </div> </body> <script type="text/javascript"> var oinp=document.getElementsByTagName('input')[0]; var obox=document.getElementsByTagName('div')[0]; // oinp.οnblur=function(){ // console.log(2312312) // } // oinp.οnfοcus=function(){ // console.log('kkkkkkk') // } // obox.οnfοcusin=function(){ // alert(123123) // } obox.onfocusout=function(){ console.log('坎坎坷坷') } </script> </html>

    鼠标事件 onclick 当用户单击对象时 ondblclick 当用户双击对象时 onmouseout 移出事件 onmouseover 移入事件 onmousemove 移入元素的内部不断的移动时触发 onmousedown 在用户按下了任意鼠标按钮时触发 onmouseup 在用户释放鼠标按钮时触发

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body> <button>点击</button> </body> <script type="text/javascript"> var obtn=document.getElementsByTagName('button')[0]; // obtn.οnclick=function(){ // alert() // } // obtn.οndblclick=function(){ // alert() // } // obtn.οnmοuseοut=function(){ // alert() // } // obtn.οnmοuseοver=function(){ // alert() // } // obtn.οnmοusemοve=function(){ // alert() // } // obtn.οnmοusedοwn=function(){ // alert() // } // obtn.οnmοuseup=function(){ // alert() // } </script> </html>

    键盘事件 onKeydown 当用户按下键盘上的任意键时触发。 onKeypress 当用户按下键盘上的字符键时触发。 onKeyup 当用户释放键盘上的键时触发。 keyCode 返回键盘键对应的编码

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body> <div></div> </body> <script type="text/javascript"> var obox=document.getElementsByTagName('div')[0]; // window.οnkeydοwn=function(evt){ // var e=event||window.event; // obox.innerHTML=e.keyCode;//keyCode 键盘编码 // } // window.οnkeypress=function(evt){ // var e=event||window.event; // obox.innerHTML=e.keyCode;//keyCode 键盘编码 // } window.onkeyup=function(evt){ var e=event||window.event; obox.innerHTML=e.keyCode;//keyCode 键盘编码 } </script> </html>

    获取鼠标在可视窗口的位置

    clientX 鼠标在x轴的位置 clientY 鼠标在y轴的位置

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"> p{ position: fixed; } </style> </head> <body style="height: 3000px;"> <p style="margin: 50px;"></p> <p style="margin: 150px;"></p> <p></p> </body> <script type="text/javascript"> var op1=document.getElementsByTagName('p')[0]; var op2=document.getElementsByTagName('p')[1]; var op3=document.getElementsByTagName('p')[2]; window.onmousemove=function(e){ var e=e||window.event; op1.innerHTML='我是可视区域'+e.clientX+','+e.clientY; op2.innerHTML='我是页面区域'+e.pageX+','+e.pageY; op3.innerHTML='我是屏幕区域'+e.screenX+','+e.screenY; } </script> </html>

    获取鼠标在页面的坐标位置

    pageX 鼠标在页面x轴的位置 pageY 鼠标在页面y轴的位置

    获取鼠标在屏幕坐标位置

    screenX 鼠标在屏幕的x轴的位置 screenY 鼠标在屏幕的y轴的位置

    获取到鼠标在当前div(元素)上的坐标位置

    offsetY offsetX 火狐浏览器不兼容 layerX 火狐浏览器兼容 layerY

    获取可视窗口的宽高/获取屏幕窗口的宽高

    可视:clientWidth/clientHeight 屏幕:screenWidth/screenHeight

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"> div{ width: 300px; height: 300px; background: red; } </style> </head> <body> <div></div> <p></p> </body> <script type="text/javascript"> var obox=document.getElementsByTagName('div')[0]; var op=document.getElementsByTagName('p')[0]; obox.onmousemove=function(e){ var e=e||window.event; op.innerHTML=e.offsetX+','+e.offsetY; } </script> </html>
    Processed: 0.023, SQL: 8