目录
onload 页面加载事件
window.onload是一个事件,在文档加载完成后能立即触发,并且能够为该事件注册事件处理函数。将要对对象或者模块进行操作的代码存放在处理函数中。即:window.onload =function (){这里写操作的代码};
案例:
<img src="images/logo_170x46.png" id="pic">
<div id="box"></div>
<script type="text/javascript">
/* window.οnlοad=function(){
console.log("图片加载完成")
} */
var op = document.getElementById('pic');
op.onload = function () {
console.log("图片加载")
}
</script>
onresize 改变窗口大小时触发事件
• onresize 事件会在窗口或框架被调整大小时发生
• window 对象支持 onresize 事件,同时常规标签也都支持( div 、 textarea 、 table 等)
• 获取窗口的宽高值
兼容写法如下
• 宽度: document.body.clientWidth ||document.documentElement.clientWidth
• 高度: document.body.clientHeight ||document.documentElement.clientHeight
案例:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style type="text/css">
#box{width: 200px;height: 200px;background-color: red;position: absolute;
top: 0;left: 0;}
</style>
</head>
<body>
<div id="box"></div>
<script type="text/javascript">
var ow=0;
var oh=0;
var obox=document.getElementById("box");
ow=document.documentElement.clientWidth;
oh=document.documentElement.clientHeight;
window.οnresize=function(){
ow=document.documentElement.clientWidth;
oh=document.documentElement.clientHeight;
autoFn(ow,oh);
}
function autoFn(w,h){
obox.style.left=(w-obox.offsetWidth)/2+"px";
obox.style.top=(h-obox.offsetHeight)/2+"px";
}
</script>
</body>
</html>
onscroll滚动条事件
是检测页面是否滚动的函数,常用在页面的动态加载中
返回顶部案例:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style type="text/css">
#back{
width: 100px;
height: 200px;
background-color: red;
color: #fff;
border: none;
position: fixed;
right: 10px;
bottom: 100px;
cursor: pointer;
}
</style>
</head>
<body style="height: 2000px;">
<button id="back">返回顶部</button>
<script type="text/javascript">
var oback=document.getElementById('back');
oback.οnclick=function(){
document.documentElement.scrollTop=0;
}
</script>
</body>
</html>
表单事件
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<!-- onfocus:元素获取焦点事件
onblur:元素失去焦点事件 -->
<!-- 初始化设置焦点 autofocus -->
<form action="01onload.html" method="post" id="form">
<input type="text" placeholder="请输入用户名" id="user">
<input type="password" placeholder="请输入密码" id="pass">
<input type="reset" value="重置" >
<input type="submit" value="提交" >
</form>
<script type="text/javascript">
var ouser=document.getElementById("user");
// ouser.οnfοcus=function(){
// console.log("获取焦点事件");
// }
// ouser.οnblur=function(){
// console.log("失去焦点事件");
// }
// onchange用户改变域的内容的时候触发的事件
// ouser.οnchange=function(){
// console.log(this.value);
// }
// onreset 表单重置的时候触发事件
// var oform=document.getElementById("form");
// oform.οnreset=function(){
// var off=confirm("是否要清空表单");
// if(!off){
// return false;//阻止清空
// }
// }
// onsubmit事件:表单提交的时候触发的事件
var oform=document.getElementById("form");
oform.οnsubmit=function(){
if(oform.user.value===''){
alert("用户名不能为空");
return false;
}
}
</script>
</body>
</html>
键盘事件
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<input type="text" id="txt">
<!-- onkeydown :键盘按下
onkeypress:某个键盘被按下然后释放的时候发生的事件
onkeyup:某个键盘被松开 -->
<script type="text/javascript">
// document.οnkeydοwn=function(){
// console.log("当前是某个键盘的键被按下了")
// }
// document.οnkeypress=function(){
// console.log("某个键盘被按下然后释放")
// }
// document.οnkeyup=function(){
// console.log("当前是某个键盘的键被松开;了")
// }
var otxt=document.getElementById('txt');
otxt.οnkeyup=function(){
console.log(this.value)
}
</script>
</body>
</html>
鼠标事件
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<input type="button" id="btn" value="双击">
<script type="text/javascript">
// ondbclick双击事件
document.getElementById('btn').οndblclick=function(){
alert(1)
}
// onmousedown鼠标按下
document.οnmοusedοwn=function(){
console.log("鼠标按下")
}
document.οnmοuseup=function(){
console.log("鼠标抬起")
}
document.οnmοusemοve=function(){
console.log("鼠标移动")
}
</script>
</body>
</html>
事件绑定
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<input type="button" name="" id="btn" value="按钮" />
<script type="text/javascript">
var obtn=document.getElementById('btn');
// obtn.οnclick=function(){
// alert(1)
// }
// obtn.οnclick=fn2;
// obtn.οnclick=fn1;
function fn1(){
alert(1)
}
function fn2(){
alert(2)
}
// addEventListener() 兼容chrome firefox safari opera
// removeEventListener()
// 所有dom的节点都包含这个方法,并且这个方法会接收3个参数
// 1.事件类型
// 2.事件的处理方法
// 3.布尔参数 默认为false
// true 捕获阶段调用事件处理的方法,false冒泡事件调用事件处理的方法
// obtn.addEventListener('click',false);
// obtn.addEventListener('click',fn2,false);
// attachEvent()兼容ie7/8
// obtn.attachEvent('onclick',fn1)
// obtn.attachEvent('onclick',fn2)
// onclick 是绑定事件,告诉浏览器在鼠标点击的时候要执行什么
// click本身的作用是触发onclick事件,只要你执行click方法,就可以执行onclick事件
function bind(obj,even,fn){
if(obj.addEventListener){
obj.addEventListener(even,fn,false);
}else{
obj.attachEvent('on'+enen,function(){
fn.call(obj);
})
}
}
bind(obtn,'click',function(){
alert(this.value)
})
</script>
</body>
</html>
冒泡事件
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style type="text/css">
div{padding: 40px;}
#box1{background-color: red;}
#box2{background-color: yellow;}
#box3{background-color: green;}
</style>
</head>
<body id="body">
<div id="box1">box1
<div id="box2">box2
<div id="box3">
box3
</div>
</div>
</div>
<!-- 事件冒泡:当一个元素接收到事件的时候,会把已经收到的所有的事件传递给父级,直到window。事件冒泡默认情况存在的, -->
<script type="text/javascript">
var obox1=document.getElementById('box1'),
obox2=document.getElementById('box2'),
obox3=document.getElementById('box3');
var obody=document.getElementById('body');
function getid(){
console.log(this.id);
event.stopPropagation();
}
obox1.οnclick= getid;
obox2.οnclick= getid;
obox3.οnclick= getid;
</script>
</body>
</html>
捕获事件案例
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style type="text/css">
div{padding: 40px;}
#box1{background-color: red;}
#box2{background-color: yellow;}
#box3{background-color: green;}
</style>
</head>
<body id="body">
<div id="box1">box1
<div id="box2">box2
<div id="box3">
box3
</div>
</div>
</div>
<script type="text/javascript">
var obox1=document.getElementById('box1'),
obox2=document.getElementById('box2'),
obox3=document.getElementById('box3');
var obody=document.getElementById('body');
function getid(){
console.log(this.id);
}
obox1.addEventListener('click',getid,true);
obox2.addEventListener('click',getid,true);
obox3.addEventListener('click',getid,true);
</script>
</body>
</html>
以上案例可以自己边敲边理解,个人的理解都写在注释里了,希望能帮助到大家,有不对的地方或者不当的地方希望大佬指点,我会听取意见。