DOM事件
- 就是文档或者浏览器窗口中发生的一些特定的交互瞬间。
- 主讲2种:
- HTML事件
- DOM0级事件
HTML事件
- 直接在HTML元素标签内添加的事件,执行脚本。
- 语法:
- 功能:在html元素上绑定事件
- 说明:执行脚本可以是一个函数的调用
鼠标事件
- onload — 页面加载时触发
- onclick — 鼠标点击时触发
- onmouseover — 鼠标滑过时触发
- onmouseout — 鼠标离开时触发
- onfoucs — 获得焦点时触发 — input标签type为text password / textarea标签
- onblur — 失去焦点时触发
- onchange — 域的内容发生改变时触发 — 一般作用在select、chaecbox、radio
关于this的指向
- 在事件触发函数中,this是对该DOM对象的引用
DOM0级事件
- 通过DOM获取HTML元素
- (获取HTML元素).事件 = 执行脚本
- 语法:ele.事件 = 脚本
- 功能:在DOM对象上绑定事件
- 说明:执行脚本可以是一个匿名函数,也可以是一个函数的调用
鼠标事件 — 补充
- onsubmit事件 — 表单中的确认按钮被点击时发生 — 不是加在按钮上而是表单上
- onmousedown — 鼠标按钮在元素上按下时触发
- onmouseup — 在元素上松开鼠标按钮时触发 — 2和3成就了onclick事件
- onmousemove — 在鼠标指针移动时触发
- onresize — 当调整浏览器窗口大小时触发
- onscroll — 拖动滚动条滚动时触发
键盘事件与keycode属性
- onkeydown — 在用户按下一个键盘按键时触发
- onkeypress — 在按下键盘按键时发生(只会响应字母和数字符号)
- onkeyup — 在键盘按键松开时发生
- keycode:返回onkeypress onkeydown 或者onkeyup事件触发的键的值得字符代码,或者键的代码
项目案例图:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script type="text/javascript">
//网页加载 不带括号 先执行事件
window.onload=init;
//初始化函数
function init(){
//获取下拉从菜单
var menu = document.getElementById("menu");
//给菜单绑定change事件
menu.onchange=function(){
//console.log("abc");
//获取当前选中的值
// var bgcolor = this.value;
//下拉菜单选中的值
var bgcolor = menu.options[menu.selectedIndex].value;
//如果bgcolor为空的话,则下面的脚本不执行 return
if (bgcolor==""){
//return;//在这里直接用return结束的话等到在选择空白属性的时候会出现bug
document.body.style.background="#fff";
}
//设置body的背景颜色
document.body.style.background=bgcolor;
}
}
</script>
</head>
<body>
<div class="box">
请选择您喜欢的背景色
<select name="" id="menu">
<option value="">请选择</option>
<option value="#f00">红色</option>
<option value="#0f0">绿色</option>
<option value="#00f">蓝色</option>
<option value="#ff0">黄色</option>
<option value="#ccc">灰色</option>
</select>
</div>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style type="text/css">
body{
height: 200px;
}
.box{
width: 200px;
height: 200px;
background:red;
overflow: auto;
}
</style>
</head>
<body>
<div class="box" id="box">
<p>拖动</p>
<p>拖动</p>
<p>拖动</p>
<p>拖动</p>
<p>拖动</p>
<p>拖动</p>
<p>拖动</p>
<p>拖动</p>
<p>拖动</p>
<p>拖动</p>
<p>拖动</p>
<p>拖动</p>
<p>拖动</p>
<p>拖动</p>
<p>拖动</p>
<p>拖动</p>
<p>拖动</p>
</div>
</body>
<script type="text/javascript">
var box = document.getElementById("box");
//绑定按下的事件
box.onmousedown = function(){
console.log("我被按下了!");
}
box.onmousemove = function(){
console.log("我被移动了!");
}
box.onmouseup = function(){
console.log("我被松开了!");
}
box.onclick = function(){
console.log("我被点击了!");
}
box.onmousedown = function(){
console.log("我被按下了!");
}
//当浏览器窗口尺寸发生改变是
window.onresize = function(){
console.log("我的尺寸被改变了!");
}
window.onscroll = function(){
console.log("我被拖动了!");
}
box.onscroll = function(){
console.log("我是DIV,我被拖动那个了!");
}
</script>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style type="text/css">
.text span{
font-weight: bold;
}
em{
font-style: inherit;
}
</style>
</head>
<body>
<div>
<p class="text">字数限制在30字以内,您还可以输入<span><em id="count">30</em></span></p>
<div>
<textarea name="" id="text" cols="70" rows="4"></textarea>
</div>
</div>
</body>
<script type="text/javascript">
var text = document.getElementById("text");
var total = 30;
var count = document.getElementById("count");
document.onkeyup = function(){
var len = text.value.length;
var allow = total-len;
count.innerHTML=allow;
}
</script>
</html>
总结
- DOM:将文档表现为结构化的表示方法,使得每一个页面元素都是可操控的。DOM将网页和脚本以及其他编程语言联系起来。
- DOM树:
- 1、常见的DOM操作:
(1) getElementById 返回带有指定的ID元素
(2) getElementsByTagName 返回的是包含带有指定标签名的所有元素的节点列表
(3) getElementsByClassName 返回的是包含带有指定类名的所有元素的节点列表
(4) getElementsByName 获取相同名称(name)的元素的所有节点列表