分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 教程案例

JS事件

发布时间:2023-09-06 02:18责任编辑:郭大石关键词:暂无标签

一、事件的两种绑定方式 *******

1、on事件绑定方式

document.onclick = function() { ???console.log("文档点击");}// on事件只能绑定一个方法,重复绑定保留最后一次绑定的方法
document.onclick = function() { ???console.log("文档点击");}// 事件的移除document.onclick = null;

2、非on事件绑定方式

document.addEventListener('click', function() { ????console.log("点击1");})document.addEventListener('click', function() { ????console.log("点击2");})// 非on事件可以同时绑定多个方法,被绑定的方法依次被执行// addEventListener第三个参数(true|false)决定冒泡的方式
function fn () {}document.addEventListener('click', fn);// 事件的移除document.removeEventListener('click', fn);

二、事件参数event *********

  • 存放事件信息的回调参数

三、事件的冒泡与默认事件 *********

  • 事件的冒泡:父子都具有点击事件,不处理的话,点击子级也会出发父级的点击事件
<body id="body"> ???<div id="sup"> ???????<div id="sub"></div> ???</div></body><script>sub.onclick = function (ev) { ???// 方式一 ???ev.stopPropagation(); ???console.log("sub click");}sup.onclick = function (ev) { ???// 方式二 ???ev.cancelBubble = true; ???console.log("sup click");}body.onclick = function (ev) { ???console.log("body click");}</script>
  • 默认事件:取消默认的事件动作,如鼠标右键菜单
  • ev.preventDefault(); | return false;
<body id="body"> ???<div id="sup"> ???????<div id="sub"></div> ???</div></body><script> ???//默认事件:鼠标右键oncontextmenu ???sub.oncontextmenu = function (ev) { ???????ev.preventDefault(); ???????console.log("sub menu click"); ???} ???//父级取消了默认事件,子级都被取消掉了 ???body.oncontextmenu = function(ev){ ???????console.log("body menu click"); ???????return false; ???}</script>

四、鼠标事件 *********

  • 鼠标事件
onclick:鼠标点击ondblclick:鼠标双击onmousedown:鼠标按下onmousemove:鼠标移动onmouseup:鼠标抬起onmouseover:鼠标悬浮 onmouseenteronmouseout:鼠标移开 onmouseleaveoncontextmenu:鼠标右键
  • 事件参数ev
ev.clientX:点击点X坐标ev.clientY:点击点Y坐标

五、键盘事件 *******

  • 键盘事件
onkeydown:键盘按下onkeyup:键盘抬起// 绑定的对象: 对象自身不录入文本,绑给document,自身录入文本(表单标签),绑给自身ev.keyCode
  • 事件参数ev
ev.keyCode:按键编号ev.altKey:alt特殊按键ev.ctrlKey:ctrl特殊按键ev.shiftKey:shift特殊按键
  • 键盘控制平滑运动
<div class="div"></div><script> ???var div =document.querySelector('.div'); ???var r_able =false; ???var l_able =false; ???var t_able =false; ???var b_able =false; ???setInterval(function () { ???????//l_able为假,则后者短路,可以实现if的简写 ???????l_able&&(div.style.left=div.offsetLeft -3 + 'px'); ???????t_able&&(div.style.top=div.offsetTop -3 + 'px'); ???????????????if(r_able){ ???????????div.style.left = div.offsetLeft + 3 + 'px'; ???????} ???????b_able&&(div.style.top=div.offsetTop +3 + 'px'); ???},16); ???document.onkeydown = function (ev) { ???????switch(ev.keyCode){ ???????????case 39: r_able=true; break; ???????????case 37: l_able=true; break; ???????????case 38: t_able=true; break; ???????????case 40: b_able=true; break; ???????} ???} ???document.onkeyup = function (ev) { ???????switch(ev.keyCode){ ???????????case 39: r_able=false; break; ???????????case 37: l_able=false; break; ???????????case 38: t_able=false; break; ???????????case 40: b_able=false; break; ???????} ???}</script>

六、表单事件 *******

onfocus:获取焦点onblur:失去焦点onselect:文本被选中oninput:值改变onchange:值改变,且需要在失去焦点后才能触发onsubmit:表单默认提交事件
<form action=""> ???<input type="text" name="usr"> ???<button type="submit">提交</button></form><script> ???var form = document.querySelector('form'); ???var ipt=document.querySelector('input'); ???var btn =document.querySelector('button'); ???ipt.onselect = function () { ???????console.log("文本被选中了"); ???} ???//值改变就触发 ???ipt.oninput=function(){ ???????console.log("值在改变"); ???} ???//键盘抬起就触发 ???ipt.onkeyup =function () { ???????console.log("值在改变"); ???} ???//丢失焦点触发 ???ipt.change =function () { ???????console.log("值在改变"); ???} ???//form的专有事件 ???form.onsubmit = function () { ???????console.log("提交"); ???????return false;//取消默认事件 ???}</script>

七、文档事件 *

  • 文档事件由window调用
onload:页面加载成功onbeforeunload:页面退出或刷新警告,需要设置回调函数返回值,返回值随意

八、图片事件 *

onerror:图片加载失败

九、页面事件 *********

onscroll:页面滚动onresize:页面尺寸调整
window.scrollY:页面下滚距离

JS事件

原文地址:https://www.cnblogs.com/mangM/p/9813056.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved