js---Dom(六)事件---重点

鼠标事件


<!DOCTYPE html>
<html lang="en">

	<head>
		<meta charset="UTF-8">
		<title>Title</title>
		<style>
			#box {
				width: 200px;
				height: 200px;
				background-color: yellow;
			}
			
			#child {
				width: 100px;
				height: 100px;
				background-color: green;
			}
		</style>

	</head>

	<body>

		<div id="box">
			<!-- 子元素 -->
			<div id="child">

			</div>

		</div>
		<script>
			/*	onmouseenter:鼠标进入被选元素时会触发onmouseenter事件
				onmouseover:鼠标进入被选元素或者它的任意子元素时都会触发onmouseover事件
				onmouseenter通常与onmouseleave一起用,onmouseover和onmouseout一起用
				onmouseleave:鼠标离开被选元素时触发
				onmouseout:鼠标离开被选元素或者它的任意子元素时都会触发
			* */

			var box = document.getElementById('box');
			var child = document.getElementById('child');
			box.onmouseenter = function() {
				console.log("鼠标进入--onmouseenter");
			}
			box.onmouseover = function() {
				console.log("鼠标进入--onmouseover");
			}
			box.onmouseleave=function(){
				console.log("鼠标离开--onmouseleave");
			}
			box.onmousemove=function(){
				console.log("鼠标移动--onmousemove");
			}
			/* 鼠标按下时触发 */
			box.onmousedown=function(){
				console.log('鼠标被按下了');
			}
			/* 鼠标松开时触发 */
			box.onmouseup=function(){
				console.log('鼠标松开了');
			}
		</script>
	</body>

</html>

在这里插入图片描述

键盘事件


<!DOCTYPE html>
<html lang="en">

	<head>
		<meta charset="UTF-8">
		<title>Title</title>
		

	</head>

	<body>
		<script>
		 /* 键盘事件:是在键盘的按键上触发的事件
		  *  键盘事件的事件源:body或者document元素
		  *  console.log("按键被按下了"); onkeydown:键盘的按键被按下时触发
		  *  onkeyup:按键松开时触发
		  */
		 
		 document.body.onkeydown=function(){
		 	 console.log("按键被按下了");
		 }
		 document.body.onkeyup=function(){
		 	 console.log("按键被松开了");
		 }
		</script>
	</body>

</html>

在这里插入图片描述

event事件对象_属性


<!DOCTYPE html>
<html lang="en">

	<head>
		<meta charset="UTF-8">
		<title>Title</title>
		

	</head>

	<body>
		<script>
		 /* event事件对象:这个对象是结合键盘事件使用的,将它传到键盘事件的响应函数中
		  *event对象的属性 ctrlKey:判断键盘事件触发时是否按下了Ctrl键
		  *  event事件对象也可以跟鼠标事件一起使用
		  * clientX属性:获取鼠标指针相对于窗口客户区域的 x 坐标
		  * clientY属性:获取鼠标指针相对于窗口客户区域的 Y坐标
		  * 
		  * onmousemove:鼠标指针在元素上移动时触发的事件,可以在这个事件中获取鼠标指针的x和y坐标
		  * onmousemove事件一般加在document对象上
		  * keyCode:获取按键的ascii值
		  */
		 
		 document.body.onkeydown=function(event){
		 	    var f= event.ctrlKey;
		 	 console.log("按键被按下了"+f);
		 }
		 document.body.onkeyup=function(){
		 	 console.log("按键被松开了");
		 }
		  
		document.onmousemove=function(event){
		  	 var x=  event.clientX;
		  	 var y=event.clientY;
		  	 console.log('鼠标指针的x坐标:'+x+",y坐标:"+y);
		  }
		  document.body.onkeydown=function(event){
		  	//获取按键的ascii码值,就是一个数字
		  	//常用的几个ascii:
		  	//回车键---13    左键--37  右键--38  上键--39  下键--40
		  	  var code= event.keyCode;
		  	  console.log('按键的ascii:'+code);
		  }
		 
		</script>
	</body>

</html>

在这里插入图片描述

event对象的方法–阻止事件冒泡和阻止默认行为


<!DOCTYPE html>
<html lang="en">

	<head>
		<meta charset="UTF-8">
		<title>Title</title>
		<style>
			#parent {
				width: 200px;
				height: 200px;
				background-color: yellow;
			}
			
			#child {
				width: 100px;
				height: 100px;
				background-color: red;
			}
		</style>
	</head>

	<body>
		<div id="parent">
			<div id="child"></div>
		</div>
		<a href="http://www.baidu.com"  id="link">百度一下,你就知道</a>
		<script>
		/*	事件冒泡:当事件发生时,事件源会把该事件由下向上(由内向外)传播出去(事件派发),此时它的父元素也触发了该事件,
		 * 并执行相应的事件处理函数
		 * evvent
			event.stopPropagation():阻止事件冒泡
			event.preventDefault():阻止事件的默认行为
		**/
			var parent=document.getElementById('parent');
			var child=document.getElementById('child');
			//给子元素添加事件
			child.onclick=function(event){
				console.log('onlick事件,child');
				 //阻止事件冒泡
				event.stopPropagation(); 
			}
			//给父元素parent添加事件
			parent.onclick=function(event){
				console.log('onlick事件,parent');
				//阻止事件冒泡
				event.stopPropagation(); 
			}
			document.body.onclick=function(){
				console.log('onlick事件,body');
			}
			var link=document.getElementById('link');
			link.onclick=function(event){
				  //阻止超链接的单击事件的默认跳转行为
				  event.preventDefault();
			}
		</script>
	</body>

</html>

在这里插入图片描述

表单的事件


<!DOCTYPE html>
<html>

	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>

	<body>

		<form action="http://www.baidu.com" id="form">
		用户名:	<input type="text" name="username" id="uname" placeholder="请输入用户名..."> <br>
		密码:	<input type="password" name="password" placeholder="请输入密码..."> <br>
			<input type="submit" value="提交" />
			<input type="reset" value="重置" />
			
			<input type="button"  id="btn" value="普通按钮提交表单" />
		</form>

		
		<script>
			/* onsubmit:是提交表单时就会自动触发onsubmit事件
			    onreset:是重置表单时会自动触发onreset事件
			    不需要给提交按钮添加单击事件
			    如果需要给表单中的数据做验证,就直接把验证的代码写到onsubmit事件的响应函数中
			    在onsubmit事件中做js验证时,如果要阻止表单提交,可以写event.preventDefault();或者 return false;
			  提交表单可以用提交按钮来提交(点击提交按钮,默认就会提交表单),也可以用普通按钮
			    普通按钮提交表单的步骤:
			    1.给普通按钮添加单击事件
			    2.在单击事件中调用表单的submit()方法,该方法会自动的去提交表单,如果要做js验证,就把验证代码写到普通按钮的onclick事件中
			    
			 注意:
			 如果是用提交按钮提交表单,不需要做js验证,那么就不用写表单的onsubmit事件;
			如果是用普通按钮提交表单,不需要做js验证,那么不能省略按钮的onclick事件,只需要在onclick事件的响应函数中写 form.submit();    
			 * */
			//获取表单
			var form=document.getElementById('form');
			form.onsubmit=function(event){
				//console.log('表单被提交了');
				//当用户名的长度少于6时,不符合要求,要求:用户名的长度至少是6位
				var uname=  document.getElementById('uname').value;
				if(uname.length<6){
					console.log('用户名至少要6位');
					 //不符合要求,阻止表单提交
					 //event.preventDefault();
					 return false;
				}
				//允许表单提交
			}
			//获取普通按钮
			var btn=document.getElementById('btn');
			//给按钮添加单击事件
			btn.onclick=function(){
				var uname=  document.getElementById('uname').value;
				if(uname.length<6){
					console.log('用户名至少要6位');
					return;
				}
				//提交表单
				 form.submit();
			}
			
			
		</script>
	</body>

</html>

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值