10.12 笔记-JavaScript 05 事件对象
来源:互联网 发布:库里体测数据 编辑:程序博客网 时间:2024/06/03 05:24
JavaScript05
1. 什么是事件
用鼠标或者键盘操作文本文档的时候 产生一个事件 ,事件就是用户操作
事件驱动: 当产生事件的时候,就会调用程序去处理事件,达到效果 这个过程叫做事件驱动
2. 事件组成
事件源 事件 事件处理
<!-- 事件源 button 元素 事件 onclick 事件处理 func()-->
<!-- <button id="btn" onclick="func()">点击</button> -->
3. 事件设置
i. 标签引入
ii. 标签绑定
code:
4. 事件对象
鼠标坐标
e.clientX 鼠标坐标x轴
e.clientY 鼠标坐标y轴
5. 事件列表
文档事件
window 顶级对象
window.onload = function(){} 文档加载成功
window.onunload = function(){} 关闭窗口的时候 触发
window.onbeforeunload = function(){} 在离开时给予提示信息
图片事件
imgObject.onload = function(){} 图片加载成功之后触发
imgObject.onerror = function(){} 图片加载失败之后触发
code:
鼠标事件方法
onclick 点击事件,鼠标点击一次
ondblclick 双击事件,鼠标双击
onmousedown 鼠标按下事件
onmouseup 鼠标弹起事件
onmousemove 鼠标移动事件
onmouseover 鼠标移入
onmouseout 鼠标移除
onmouseenter 鼠标移入
onmouseleave 鼠标移除
onmouseover 和 onmouseout 与 onmouseenter和onmouseleave
前者对于包含关系的元素会出现一入一出的效果(也就是说子元素和父元素之间滑过会被响应)
后者对于包含关系的元素不会出现一入一出的效果
(子元素和父元素之间滑过值只响应一次)
code:
6. 实现拖拽div
code:
7. 鼠标移入移除响应导航菜单
code:
8. 图片放大镜,类似于淘宝图片预览放大
offsetLeft 和 offsetTop 获取当前元素距离父元素的left和top值
scrollTop 和 scrollLeft 滚动条所在位置 可读可写的属性
code:
9. 图片轮播 加左右按钮 数字按钮
1. 什么是事件
用鼠标或者键盘操作文本文档的时候 产生一个事件 ,事件就是用户操作
事件驱动: 当产生事件的时候,就会调用程序去处理事件,达到效果 这个过程叫做事件驱动
2. 事件组成
事件源 事件 事件处理
<!-- 事件源 button 元素 事件 onclick 事件处理 func()-->
<!-- <button id="btn" onclick="func()">点击</button> -->
3. 事件设置
i. 标签引入
ii. 标签绑定
code:
<body> <button id="btn"> 点击</button> </body> <script> function func(){ // code .. //1.标签引入 } var btn = document.getElementById('btn'); btn.onclick=function(){ // code .. 2.标签绑定 } </script>
4. 事件对象
鼠标坐标
e.clientX 鼠标坐标x轴
e.clientY 鼠标坐标y轴
code:
<body> <div id="box" onclick="test(event,this)"></div> </body> <script> //标签引入方式绑定事件 //需要在绑定的时候传递一个实参event 函数这里用形参来接受 //标签绑定形式获取事件对象 (最常用的形式 重点内容) var box = document.getElementById('box'); //标准浏览器会自动传递一个参数 这个参数就是事件 对象 box.onclick = function(e){ //IE中 可以直接在事件函数中使用event这个对象 var e = e || event; //解决事件对象兼容性问题 document.title = "X:" + e.clientX +"Y:" + e.clientY; //box.innerHTML = '元素对象赋值'; this.innerHTML = 'this代表本类对象,赋值效果一样'; } </script>
5. 事件列表
文档事件
window 顶级对象
window.onload = function(){} 文档加载成功
window.onunload = function(){} 关闭窗口的时候 触发
window.onbeforeunload = function(){} 在离开时给予提示信息
code:
<body> <button id="btn">测试</button> </body> <script> //关闭窗口的事件 触发事件 只有IE支持 window.onunload =function(){ alert('关闭了'); } //在离开时给予提示信息 用来确保安全 window.onbeforeunload= function(){ return '确定要离开吗?'; } </script> <script> //文档加载成功的时候 会触发onload事件 window.onload = function(){ var btn =document.getElementById('btn'); alert(btn); } </script>
图片事件
imgObject.onload = function(){} 图片加载成功之后触发
imgObject.onerror = function(){} 图片加载失败之后触发
code:
<body> <img src="./2.jpg" alt="" id="img"> </body> <script> var img = document.getElementById('img'); //图片加载成功之后触发 img.onload = function(){ alert('图片加载成功'); } //图片加载失败之后触发 img.onerror = function(){ alert('图片加载失败'); //我们可以进行新图片路径赋值 //注意:如果进行新图片路径也加载失败会被重复调用方法 this.src="./0.jpg"; } </script>
鼠标事件方法
onclick 点击事件,鼠标点击一次
ondblclick 双击事件,鼠标双击
onmousedown 鼠标按下事件
onmouseup 鼠标弹起事件
onmousemove 鼠标移动事件
onmouseover 鼠标移入
onmouseout 鼠标移除
onmouseenter 鼠标移入
onmouseleave 鼠标移除
onmouseover 和 onmouseout 与 onmouseenter和onmouseleave
前者对于包含关系的元素会出现一入一出的效果(也就是说子元素和父元素之间滑过会被响应)
后者对于包含关系的元素不会出现一入一出的效果
(子元素和父元素之间滑过值只响应一次)
code:
<body> <button id="butt">单击</button> </body> <script> var butt = document.getElementById('butt'); butt.onmousedown = function(){ console.log('按下了鼠标'); } butt.onmouseup = function(){ console.log('鼠标弹起了'); } butt.onclick = function(){ console.log('鼠标单击事件'); } butt.ondblclick = function(){ console.log('鼠标双击事件') } document.onmousemove = function(e){ // 调整浏览器兼容性问题 var e = e || event; // 鼠标移动位置事件 document.title = "X:"+e.clientX+" Y:"+e.clientY; } </script>
6. 实现拖拽div
code:
<!DOCTYPE html> <html> <head> <meta charset='utf-8'> <title>document</title> <style> #box{width:100px;height:100px;background:orange;position:absolute;} </style> </head> <body> <div id="box" style="top:0px;left:0px"></div> </body> <script> var box = document.getElementById('box'); box.onmousedown = function(e){ // 解决兼容性 var e = e || event; // 计算偏移位置 var y = e.clientY - parseInt(box.style.top); var x = e.clientX - parseInt(box.style.left); document.onmousemove = function(e){ var e = e || event; document.title = "x:"+ e.clientX + " Y:"+ e.clientY; //将鼠标的坐标作为box的left和top //对相对应的位置进行相应处理 box.style.top = e.clientY - y +'px'; box.style.left = e.clientX - x + 'px'; } } // 鼠标抬起时将移动事件清空 box.onmouseup = function(){ document.onmousemove = null; } </script> </html>
7. 鼠标移入移除响应导航菜单
code:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>document</title> <style> #box{ width:100px;height:100px;background:orange; } #big{ width:200px;height:200px;background:blue; display:none;margin-top:10px; } </style> </head> <body> <div id="box"></div> <div id="big"></div> </body> <script> var box = document.getElementById('box'); var big = document.getElementById('big'); var timer; //当鼠标移入到boxdiv的时候让bigdiv显示 style.display="block" box.onmouseover = big.onmouseover = function(){ //console.log('鼠标移入'+timer); //延迟触发的事件我们在这里将其取消掉 clearTimeout(timer); big.style.display='block'; } box.onmouseout = big.onmouseout = function(){ //console.log('鼠标移出'); // 使用定时器特性让其延迟触发消失内容 timer = setTimeout(function(){ big.style.display='none'; },300); } </script> </html>
8. 图片放大镜,类似于淘宝图片预览放大
offsetLeft 和 offsetTop 获取当前元素距离父元素的left和top值
scrollTop 和 scrollLeft 滚动条所在位置 可读可写的属性
code:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style> #big{width:200px;height:200px;overflow:hidden; position:absolute;top:10px;left:430px;display:none;} </style> </head> <body> <img id="small" src="./1.jpg" alt="" width="400px"> <div id="big"> <img src="./1.jpg" alt=""> </div> </body> <script> var small = document.getElementById('small'); var big = document.getElementById('big'); small.onmousemove = function(e){ var e = e || event; //获取鼠标在图片上的相对坐标 var x = e.clientX - small.offsetLeft; var y = e.clientY - small.offsetTop; document.title="X:" + x + "Y:" + y; //大图与小图的比例 -70 适当调整让图片居中 big.scrollTop = y * 4 - 70; big.scrollLeft = x * 4 - 70; //显示我们的大图 big.style.display = "block"; } small.onmouseout = function(){ big.style.display = "none"; } </script> </html>
9. 图片轮播 加左右按钮 数字按钮
document.getElementsByName() 通过name属性找到对象 返回数组
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>Document</title><style> *{margin:0px; padding:0px;} #left{position:fixed;left:60px;top:120px;width:30px;height:30px;} #right{position:fixed;left:370px;top:120px;width:30px;height:30px;}</style></head><body><div id="left" onclick="func('-')"><img src="./images/left.png" alt="" width="100%"></div><img src="./images/11.jpg" name="list1" style="display:block" alt=""><img src="./images/22.jpg" name="list1" style="display:none" alt=""><img src="./images/33.jpg" name="list1" style="display:none"alt=""><img src="./images/44.jpg" name="list1" style="display:none" alt=""><img src="./images/55.jpg" name="list1" style="display:none"alt=""><div id="right" onclick="func('+')"><img src="./images/right.png" alt="" width="100%"></div></body><script>m=0;//获取img元素对象集合list = document.getElementsByName('list1');//图片轮播左右按钮function func(b){//把定时器清除clearInterval(mytime);//alert(m);switch(b){case '-':m =m-2;if(m<-1){m=3;}break;case "+"://alert(m);break;}running();//调用定时器mytime = setInterval(running,1000);}//让图片显示function show(m){//遍历for(var i=0;i<list.length;i++){if(i==m){list[i].style.display="block";}else{list[i].style.display="none";}}}//让图片滚动function running(){m++if(m==5){m=0;}show(m);}//定时器mytime = setInterval(running,1000);</script></html>
阅读全文
0 0
- 10.12 笔记-JavaScript 05 事件对象
- javaScript笔记(二十一) 事件对象
- JavaScript学习笔记之事件对象
- 2.javascript中的事件对象【学习笔记】
- 10.10 笔记-JavaScript 02 绑定事件,对象类型的转换
- 【JavaScript学习】事件:事件对象
- JavaScript事件对象
- JavaScript之事件对象
- JavaScript之事件对象
- JavaScript之事件对象
- JavaScript之事件对象
- JavaScript中的事件对象
- JavaScript--事件对象
- 【JavaScript】window对象事件
- 【javascript】对象绑定事件
- javascript 事件对象
- JavaScript 事件对象
- JavaScript事件对象
- json数据处理
- Linux系统知识小结(一)
- [opencv学习笔记.2]用摄像头识别指定颜色
- 树莓派做人脸识别必要环境搭建
- 利用opencv读取多张图片
- 10.12 笔记-JavaScript 05 事件对象
- 牛客原题 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。
- 关于JSON(跨域):XMLHttpRequest cannot load file:///E:/static/cartData.json. Cross origin requests..
- Python中给删除列表元素可能存在的漏洞
- 细说创建Hibernate程序的四大步骤
- JAVA字符串如何像数组一样取字符?
- CodeForces 864E Fire
- JQuery基本用法
- springboot集成redis,使用@Cacheable导致java.lang.ClassCastException:异常