DOM等级须知
- DOM0级 : 直接在标签绑定事件方式 或者通过获取dom节点绑定事件 ```javascript <!DOCTYPE html>
box
```
#### ondblclick
```javascript
box
```
#### oncontextmenu
```javascript
box
```
#### onmousedown
```javascript
box
```
#### onmouseup
```javascript
box
```
#### onmousemove
```javascript
box
```
#### onmouseleave( 阻止冒泡)
```javascript
box
```
#### onmouseenter(阻止冒泡)
```javascript
box
```
#### onmouseover( 冒泡 )
> 指的是当我们鼠标移动到子元素、在移动会来时会**频繁触发父节点mouseover**、所以一般情况下我们都是使用**mouseenter和mouseleave**方法去做移入移出的操作
```javascript
box
```
#### onmouseout ( 冒泡 )
```javascript
box
```
### 键盘事件
#### onkeydown
```javascript
```
#### onkeypress
```javascript
```
#### onkeyup
```javascript
```
### 页面/对象事件
#### onerror
```javascript
```
#### onhashchange
```javascript
改变锚点
```
#### onload
```javascript
```
#### onpageshow
```javascript
```
#### onpagehide
```javascript
```
#### onresize
```javascript
```
#### onscroll
```javascript
复制的内容111
```
#### oncut
```javascript
复制的内容111
```
#### onpaste
```javascript
复制的内容111
```
### 打印事件
```javascript
打印的内容1
打印的内容2
<a name="H2Rzq"></a>
#### onbeforeprint
```javascript
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div>
<div id="prints" class="prints paging">
<p>打印的内容1</p>
<p media="print">打印的内容2</p>
</div>
<button onclick="startPrint()">开始打印</button>
</div>
</body>
</html>
<script>
function startPrint(){
// let dom = document.getElementById('prints');
// let win = window.open('');
// win.document.write(dom.outerHTML);
// win.print();
// win.close();
window.print();
}
window.onbeforeprint = function(e){
console.log('即将开始打印')
}
window.onafterprint = function(e){
console.log('开始打印',e)
}
</script>
<style>
.prints{
width:200px;height:200px;color:red;
border: 1px solid #000;
}
@media print {
/* 去除眉角 */
@page {
margin: 0;
}
/* 分页 */
.paging {
page-break-after: always;
}
}
</style>
拖拽事件
元素如果需要拖拽功能、我们需要把元素属性draggable设置为ture, draggable=”true”、拖拽分为拖拽元素和目标元素! 现在我们看看拖拽元素和目标元素所支持的事件!
拖拽元素事件 && 目标元素事件( 观察拖拽元素移动到目标元素事件)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div id="box1" draggable="true" style="width: 100px;height: 100px;background: red;">拖拽元素</div>
<div id="box2" style="width: 100px;height: 100px;background: blue;">目标元素</div>
</body>
</html>
<script>
const box1 = document.getElementById("box1");
const box2 = document.getElementById("box2");
// 拖拽元素
box1.addEventListener("dragstart",() =>{
console.log('拖拽元素开始拖动')
})
box1.addEventListener("dragend", () => {
console.log("拖拽元素结束拖拽")
})
box1.addEventListener("drag", () =>{
// console.log("拖拽元素在拖拽")
})
// 目标元素事件
box2.addEventListener("dragenter", () =>{
console.log("拖拽元素进入目标元素")
})
box2.addEventListener("dragleave", () =>{
console.log("拖拽元素离开目标元素")
})
box2.addEventListener("dragover", (e) =>{
e.preventDefault()
// console.log("拖拽元素在目标元素里面移动")
})
box2.addEventListener("drop", () =>{
console.log("拖拽元素放入目标元素")
})
</script>