1 什么是bom
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8oliTJl2-1605453724588)(D:\images\image-20201113172359765.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-m13fa2GB-1605453724591)(D:\images\image-20201113172859860.png)]
2 窗口加载
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SDpf6L8M-1605453724593)(D:\images\image-20201113175410267.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fX03B00E-1605453724593)(D:\images\image-20201113173936268.png)]
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script>
window.onload = function () {
var btn = document.querySelector('button')
btn.addEventListener('click', function () {
alert(11)
})
}
window.onload = function () {// 后面一次会覆盖前面一次onload
var btn = document.querySelector('button')
btn.addEventListener('click', function () {
alert(22)
})
}
window.addEventListener('load', function () {
alert(11)
})
window.addEventListener('load', function () {
alert(22)//后面不会覆盖前面
})
window.addEventListener('DOMContentLoaded', function () {
alert(33)//dom加载完毕就执行 不包括图片 样式等
})
</script>
</head>
<style>
.box {
width: 100px;
height: 40px;
background-color: pink;
position: absolute;
left: 0;
top: 35px;
overflow: hidden;
display: none;
font-size: 30px;
}
.boxb {
width: 0;
height: 0;
position: absolute;
border-bottom: 5px solid pink;
border-left: 5px solid transparent;
border-right: 5px solid transparent;
display: none;
}
input {
width: 150px;
}
</style>
<body>
<button>按钮</button>
</body>
</html>
3 窗口大小
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5vW3uu4a-1605453724595)(D:\images\image-20201113175613275.png)]
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script>
window.onload = function () {
window.onresize = function () {
var div = document.querySelector('div')
if (window.innerWidth < 1000 && window.innerWidth > 900) {
div.style.display = 'none'
}
}
window.addEventListener('resize', function () {
var div = document.querySelector('div')
if (window.innerWidth > 1000) {
div.style.display = 'block'
}
})
}
</script>
</head>
<style>
div {
width: 400px;
height: 400px;
background-color: pink;
}
</style>
<body>
<div></div>
</body>
</html>
4 定时器
执行一次
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rdv663Z3-1605453724597)(D:\images\image-20201113180949247.png)]
重复执行
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KqCb1ucb-1605453724600)(D:\images\image-20201113184159658.png)]
5 js执行机制
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kgSi5hVF-1605453724601)(D:\images\image-20201114000148558.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3WbdHEKd-1605453724602)(D:\images\image-20201114000616072.png)]
6 location对象
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DR54MhBT-1605453724604)(D:\images\image-20201114000917336.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Z2CaXbJF-1605453724604)(D:\images\image-20201114001049608.png)]
例子 5秒之后跳转页面
<!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>
<style>
</style>
<body>
<button>跳转页面</button>
<div></div>
</body>
<script>
var btn = document.querySelector('button')
var div = document.querySelector('div')
var time = 5
btn.addEventListener('click', function () {
setInterval(function () {
div.innerHTML = `将在${time}秒之后进行跳转`
time--
if (time == -1) {
location.href = 'http://www.baidu.com'
}
}, 1000)
})
</script>
</html>
一个页面获取另一个页面信息
<!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>
<style>
</style>
<body>
<form action="index.html">
<input type="text" name="myname" id="">
<button>登录</button>
</form>
</body>
<script>
</script>
</html>
<!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>
<div></div>
<script>
var div = document.querySelector('div')
var a = location.search// "?myname=zpf"
var b = a.substr(8)// zpf
div.innerHTML = `${b}欢迎你!`
</script>
</body>
</html>
常见方法
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Af9hBBDH-1605453724606)(D:\images\image-20201114005545228.png)]
7 navigator对象
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ch9tpwO1-1605453724608)(D:\images\image-20201114005944225.png)]
9 offset
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aSfLjzgm-1605453724609)(D:\images\image-20201114011202343.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oV8gNGrK-1605453724611)(D:\images\image-20201114011619471.png)]
例子 拖动模态框
<!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>
<style>
* {
margin: 0;
padding: 0;
}
.a {
width: 100px;
margin: 0 auto;
text-align: center;
}
.login {
width: 500px;
height: 300px;
background-color: rgb(255, 254, 255);
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
text-align: center;
display: none;
}
.login h3 {
height: 80px;
line-height: 80px;
color: gray;
}
.login input {
margin: 15px;
border: 1px solid black;
height: 25px;
width: 200px;
}
.login button {
width: 180px;
height: 40px;
background-color: rgb(255, 254, 255);
margin: 40px;
}
.login span:first-of-type {
margin-left: 16px;
}
.login div {
width: 32px;
height: 32px;
line-height: 32px;
border: 1px solid rgb(255, 254, 255);
border-radius: 50%;
font-size: 10px;
position: absolute;
left: 480px;
top: -17px;
background-color: rgb(255, 254, 255);
}
</style>
<body>
<div class="a">
点击登录
</div>
<div class="login">
<h3>登录会员</h3>
<span>用户名:</span>
<input type="text" name="" id="name" placeholder="请输入用户名">
<p></p>
<span>登录密码:</span>
<input type="password" name="" id="pwd" placeholder="请输入登录密码">
<p></p>
<button>登录会员</button>
<div>关闭</div>
</div>
</body>
<script>
var a = document.querySelector('.a')
var login = document.querySelector('.login')
var body = document.querySelector('body')
var div = document.querySelectorAll('div')[2]
a.addEventListener('click', function () {
body.style.backgroundColor = '#b2afb2'
login.style.display = 'block'
})
login.addEventListener('mousedown', function (e) {
var x = e.pageX - login.offsetLeft
var y = e.pageY - login.offsetTop
document.addEventListener('mousemove', move)
function move(e) {
login.style.left = e.pageX - x + 'px'
login.style.top = e.pageY - y + 'px'
}
document.addEventListener('mouseup', function (e) {
document.removeEventListener('mousemove', move)
})
})
div.addEventListener('click', function () {
login.style.display = 'none'
body.style.backgroundColor = 'rgb(255,255,255)'
})
</script>
</html>
10 client
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-k56Mg3Ys-1605453724612)(D:\images\image-20201114182659345.png)]
11 立即执行函数
(function(){}())
(function(){})()
(function sum(){} ())
(function sum(){})()
不需要调用,立即执行,参数可以放在后面的小括号里,每一个立即执行函数就是一个作用域,里面的变量都是局部变量
12 scroll
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zqmdBm8X-1605453724612)(D:\images\image-20201114185200011.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-A0ZVbW46-1605453724613)(D:\images\image-20201114185609631.png)]
<!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>
<style>
div {
width: 100px;
height: 100px;
background-color: pink;
overflow: auto;
}
</style>
<body>
<div>
我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容
</div>
</body>
<script>
var div = document.querySelector('div')
console.log(div.clientHeight);//盒子的height+padding
console.log(div.scrollHeight);//内容没有超出盒子大小为盒子大小 超出为内容大小
console.log(div.scrollTop);//盒子上沿被卷去的部分
div.addEventListener('scroll', function () {
console.log(div.scrollTop);
})
</script>
</html>
13 封装简单动画函数
<!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>
<style>
div {
width: 100px;
height: 100px;
background-color: pink;
position: absolute;
}
span {
width: 200px;
height: 200px;
background-color: aliceblue;
position: absolute;
left: 0;
top: 400px;
}
</style>
<body>
<div></div>
<span>262323</span>
<button>点击启动</button>
</body>
<script>
var div = document.querySelector('div')
var span = document.querySelector('span')
var btn = document.querySelector('button')
function move(obj, target) {
clearInterval(obj.timer)
obj.timer = setInterval(function () {
obj.style.left = obj.offsetLeft + 1 + 'px'
if (obj.offsetLeft >= target) {
clearInterval(obj.timer)
}
}, 30)
}
move(div, 500)
btn.addEventListener('click', function () {
move(span, 600)
})
</script>
</html>
缓动函数
<!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>
<style>
* {
margin: 0;
padding: 0;
}
span {
width: 200px;
height: 200px;
background-color: aliceblue;
position: absolute;
left: 0;
top: 400px;
}
</style>
<body>
<span>262323</span>
<button class="btn5">点击到500</button>
<button class="btn8">点击到800</button>
</body>
<script>
var span = document.querySelector('span')
var btn5 = document.querySelector('.btn5')
var btn8 = document.querySelector('.btn8')
var num = 1
function move(obj, target) {
clearInterval(obj.timer)
obj.timer = setInterval(function () {
var step = (target - obj.offsetLeft) / 10
step = step > 0 ? Math.ceil(step) : Math.floor(step)
obj.style.left = obj.offsetLeft + step + 'px'
if (obj.offsetLeft == target) {
clearInterval(obj.timer)
}
}, 15)
}
btn5.addEventListener('click', function () {
move(span, 500)
})
btn8.addEventListener('click', function () {
move(span, 800)
})
</script>
</html>