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>