网站素材设计框架网络热词的利弊
目录
- DOM
- 事件监听
- 案例
- 关闭广告
- 随机点名
- 事件监听版本
- 事件类型
DOM
事件监听
事件:编程时系统内发生的动作或事情,例如用户在网页上单击一个按钮
事件监听:让程序检测是否产生事件,一旦事件触发,立即调用函数做出响应,也称为绑定事件或注册事件,如鼠标经过显示下拉菜单、点击播放轮播图等
语法:元素对象.addEventListener (' 事件类型 ', 要执行的函数)
事件监听三要素:
- 事件源:被事件触发的 DOM 元素,需先获取该 DOM 元素
- 事件类型:触发事件的方式,如鼠标单击(click)、鼠标经过(mouseover)等
- 事件调用的函数:事件触发后执行的具体操作(要做的事)
代码示例:
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><button>按钮</button><script>// 获取按钮元素const button = document.querySelector('button')// 为按钮添加点击事件button.addEventListener('click', function(){// 弹出警告框alert('你点击了按钮')})</script>
</body>
</html>
结果如下:
屏幕录制 2025-03-30 212736
注意事项:
- 事件类型要加引号
- 函数是点击之后再去执行,每次点击都会执行一次
案例
关闭广告
代码示例:
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>.box {position: relative;width: 1000px;height: 200px;background-color: skyblue;margin: 100px auto;text-align: center;font-size: 50px;line-height: 200px;font-weight: 700;}.box1 {position: absolute;right: 20px;top: 10px;width: 20px;height: 20px;background-color: pink;text-align: center;line-height: 20px;font-size: 16px;cursor: pointer;}</style>
</head>
<body><div class="box">广告<div class="box1">X</div></div><script>// 获取事件源const box1 = document.querySelector('.box1')const box = document.querySelector('.box')// 事件侦听box1.addEventListener('click', function () {// 隐藏box.style.display = 'none'})</script>
</body>
</html>
结果如下:
屏幕录制 2025-03-30 214210
随机点名
代码示例:
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>* {margin: 0;padding: 0;}h2 {text-align: center;}.box {width: 600px;margin: 50px auto;display: flex;font-size: 25px;line-height: 40px;}.qs {width: 450px;height: 40px;color: red}.btns {text-align: center;}.btns button {width: 120px;height: 35px;margin: 0 50px; }</style>
</head>
<body><h2>随机点名</h2><div class="box"><span>名字是:</span><div class="qs">这里显示姓名</div></div><div class="btns"><button class="start">开始点名</button><button class="end">停止点名</button></div><script>let timeIdconst arr = ['张三','李四','王五','赵六','田七','宋八','周九','吴十']const qs = document.querySelector('.qs')const start = document.querySelector('.start')start.addEventListener('click',function () {timeId = setInterval(function () {const random = Math.floor(Math.random() * arr.length)//console.log(arr[random]);qs.innerHTML = arr[random]},35)})const end = document.querySelector('.end')end.addEventListener('click',function () {clearInterval(timeId)})</script>
</body>
</html>
结果如下:
屏幕录制 2025-03-30 221210
事件监听版本
DOM 发展历史:
- DOM L0:DOM 发展的第一个版本,L 代表 level
- DOM L1:1998 年 10 月 1 日成为 W3C 推荐标准
- DOM L2:使用
addEventListener
注册事件 - DOM L3:在 DOM 2 级事件基础上重新定义事件,新增部分新事件类型
DOM L0:
事件源.on 事件 = function (){}
DOM L2:
事件源.addEventListener (事件,事件处理函数)
区别:
on
方式绑定的事件处理函数会被覆盖addEventListener
方式可多次绑定同一事件,支持更多事件特性,推荐使用
事件类型
鼠标事件:触发方式为鼠标触发,包含 click
(鼠标点击)、mouseenter
(鼠标经过)、mouseleave
(鼠标离开)
焦点事件:触发与表单光标相关,包含 focus
(获得焦点)、blur
(失去焦点)
键盘事件:触发方式为键盘操作,包含 keydown
(键盘按下触发)、keyup
(键盘抬起触发)
文本事件:由表单输入触发,包含 input
(用户输入事件)
代码示例:
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>div {width: 100px;height: 100px;background-color: skyblue;}</style>
</head>
<body><div></div><script> const div = document.querySelector('div') // 鼠标经过 div.addEventListener('mouseenter', function () { console.log('轻轻的我来了') }) // 鼠标离开 div.addEventListener('mouseleave', function () { console.log('轻轻的我走了') }) </script>
</body>
</html>
结果如下: