scroll事件及其应用
<!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;
}
ul li
{
height
: 600px
;
border
: 1px solid #ccc
;
list
-style
: none
;
}
.header
{
height
: 500px
;
background
-color
: red
;
}
ol
{
list
-style
: none
;
width
: 700px
;
display
: flex
;
margin
: 0 auto
;
position
: sticky
;
top
: 0;
text
-align
: center
;
}
ol li
{
flex
: 1;
cursor
: pointer
;
}
.backTop
{
position
: fixed
;
right
: 120px
;
bottom
: 120px
;
padding
: 20px
;
border
: 1px solid #ccc
;
cursor
: pointer
;
}
</style
>
</head
>
<body
>
<div
class="header"></div
>
<ol
>
<li
><a
>去
1层
</a
></li
>
<li
><a
>去
2层
</a
></li
>
<li
><a
>去
3层
</a
></li
>
<li
><a
>去
4层
</a
></li
>
<li
><a
>去
5层
</a
></li
>
<li
><a
>去
6层
</a
></li
>
<li
><a
>去
7层
</a
></li
>
<li
><a
>去
8层
</a
></li
>
<li
><a
>去
9层
</a
></li
>
<li
><a
>去
10层
</a
></li
>
<li
><a
>去
11层
</a
></li
>
<li
><a
>去
12层
</a
></li
>
</ol
>
<ul
>
<li
>1层
</li
>
<li
>2层
</li
>
<li
>3层
</li
>
<li
>4层
</li
>
<li
>5层
</li
>
<li
>6层
</li
>
<li
>7层
</li
>
<li
>8层
</li
>
<li
>9层
</li
>
<li
>10层
</li
>
<li
>11层
</li
>
<li
>12层
</li
>
</ul
>
<div id
="backTop" class="backTop">回到顶部
</div
>
<script
>
var backTop
= document
.querySelector("#backTop")
var pageHeight
= document
.body
.clientHeight
let clientHeight
= document
.documentElement
.clientHeight
;
let timer
= null;
document
.onscroll = function() {
var scrollTop
= document
.documentElement
.scrollTop
|| document
.body
.scrollTop
;
if (pageHeight
- clientHeight
- scrollTop
< 300) {
clearTimeout(timer
);
timer
= setTimeout(function() {
console
.log(1);
backTop
.style
.display
= 'block'
}, 1000)
} else {
backTop
.style
.display
= 'none'
}
}
</script
>
</body
>
</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
>
<style
>
* {
margin
: 0;
padding
: 0;
}
ul li
{
height
: 600px
;
border
: 1px solid #ccc
;
list
-style
: none
;
}
.header
{
height
: 500px
;
background
-color
: red
;
}
ol
{
list
-style
: none
;
width
: 1200px
;
display
: flex
;
margin
: 0 auto
;
position
: sticky
;
top
: 0;
text
-align
: center
;
}
ol li
{
flex
: 1;
cursor
: pointer
;
}
</style
>
</head
>
<body
>
<div
class="header"></div
>
<ol
>
<li
><a
>去
1层
</a
></li
>
<li
><a
>去
2层
</a
></li
>
<li
><a
>去
3层
</a
></li
>
<li
><a
>去
4层
</a
></li
>
<li
><a
>去
5层
</a
></li
>
<li
><a
>去
6层
</a
></li
>
<li
><a
>去
7层
</a
></li
>
<li
><a
>去
8层
</a
></li
>
<li
><a
>去
9层
</a
></li
>
<li
><a
>去
10层
</a
></li
>
<li
><a
>去
11层
</a
></li
>
<li
><a
>去
12层
</a
></li
>
</ol
>
<ul
>
<li
>1层
</li
>
<li
>2层
</li
>
<li
>3层
</li
>
<li
>4层
</li
>
<li
>5层
</li
>
<li
>6层
</li
>
<li
>7层
</li
>
<li
>8层
</li
>
<li
>9层
</li
>
<li
>10层
</li
>
<li
>11层
</li
>
<li
>12层
</li
>
</ul
>
<script
>
let arr
= Array
.from(document
.querySelectorAll("a"));
arr
.forEach(function(value
, index
) {
value
.onclick = function() {
document
.documentElement
.scrollTop
= 500 + 21 + index
* 602
}
})
</script
>
</body
>
</html
>
转载请注明原文地址:https://tech.qufami.com/read-18683.html