事件
响应用户操作,完成交互效果
一般可分为鼠标事件、键盘事件及其他事件
事件:
组成:
(1)触发谁的事件:事件源
(2)触发的什么事件:事件类型
(3)触发以后做什么:事件处理函数
当我们想让元素做什么,就主要写在事件处理函数中
绑定事件
第一种方式:将前面的事件进行覆盖
div0.onclick = function() {
console.log("单击事件")
}
div0.onclick = function() {
console.log("点击事件2")
}
第二种方式addEventListener():这种方法可以实现一个元素绑定多个相同的事件
function test() {
console.log("单击事件2")
}
div0.addEventListener("click", function() {
console.log("单击事件1")
})
div0.addEventListener("click", test)
div0.removeEventListener("click", test) // 解绑removeEventListener()
div0.attachEvent():解决ie兼容性问题
div0.attachEvent("onclick",test)
鼠标事件
div0.onmousedown = function() {
// console.log("鼠标按下")
div0.classList.add("down")
}
div0.onmousemove = function() {
console.log("鼠标移动")
}
div0.onmouseup = function() {
div0.classList.add("up")
console.log("鼠标抬起")
}
onmouseover onmouseout会将事件同时绑定到子元素上
div0.onmouseover = function() {
div0.classList.add("up")
console.log("鼠标移入")
}
div0.onmouseout = function() {
div0.classList.add("up")
console.log("鼠标移出")
}
div0.onmouseenter = function() {
// div0.classList.add("up")
console.log("鼠标移入")
}
div0.onmouseleave = function() {
// div0.classList.add("up")
console.log("鼠标移出")
}
案例:
<!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>
<style>
* {
margin: 0;
padding: 0;
}
body {
background-image: url(img/bg1.jpg);
}
nav {
width: 100%;
height: 200px;
background-color: rgba(51, 50, 50, 0.385);
}
div {
width: 1300px;
height: 200px;
margin: 0 auto;
display: flex;
justify-content: center;
align-items: center;
}
img {
width: 200px;
height: 100px;
margin-left: 10px;
border-radius: 5px;
}
img:hover {
border: 3px solid white;
}
</style>
</head>
<body>
<nav>
<div>
<img src="img/bg1.jpg" alt="">
<img src="img/bg2.jpg" alt="">
<img src="img/bg3.jpg" alt="">
<img src="img/bg4.jpg" alt="">
<img src="img/bg5.jpg" alt="">
<img src="img/bg6.jpg" alt="">
</div>
</nav>
<script>
var img = document.querySelectorAll("img")
var body = document.body
for (var i = 0; i < img.length; i++) {
img[i].onmouseover = function() {
body.style.backgroundImage = "url(" + this.src + ")"
}
}
</script>
</body>
</html>
键盘事件
onkeydown 按键按下
onkeyup 按键抬起
username.onkeydown = function() {
console.log("按键按下")
}
username.onkeyup = function() {
console.log("按键抬起")
}
focus/blur :获取焦点/失去焦点
username.onfocus = function() {
console.log("获取焦点")
}
username.onblur = function() {
console.log("失去焦点")
}
change:改变时触发,当元素获取焦点和失去焦点时内容进行对比,如果发生了改变,则触发change事件,反之则不触发
username.onchange = function() {
console.log("change")
}
input
username.oninput = function() {
console.log("input")
}
var div1 = document.querySelector("#div1")
div1.ontouchstart = function() {
console.log("touchstart")
}
div1.ontouchmove = function() {
console.log("touchmove")
}
div1.ontouchend = function() {
console.log("touchend")
}