<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>15 滚动监听</title>
<link rel="stylesheet" href="css/reset.css">
<style>
body,
html {
width: 100%;
height: 100%;
}
.continer {
width: 1190px;
height: 100%;
margin: 0 auto;
}
.continer div {
width: 100%;
height: 100%;
text-align: center;
color: #fff;
font-size: 30px;
}
.aside {
position: fixed;
width: 40px;
right: 20px;
top: 300px;
font-size: 16px;
font-weight: 700;
text-align: center;
}
.aside li {
height: 50px;
border: 1px solid #dddddd;
}
.aside li a {
color: darkgoldenrod;
}
.aside li.current {
background-color: chocolate;
}
.aside li.current a {
color: #fff;
}
</style>
</head>
<body>
<div class="continer" id="box">
<div class="current">爱逛好货</div>
<div>好店主播</div>
<div>品质特色</div>
<div>猜你喜欢</div>
</div>
<ul class="aside" id="aside">
<li class="current">
<a href="javascript:void()0">爱逛好货</a>
</li>
<li>
<a href="javascript:void()0">好店主播</a>
</li>
<li>
<a href="javascript:void()0">品质特色</a>
</li>
<li>
<a href="javascript:void()0">猜你喜欢</a>
</li>
</ul>
<script src="js/myAnimation-2.js"></script>
<script>
window.onload = function () {
var box = document.getElementById('box');
var oDiv = box.children;
var aside = document.getElementById('aside');
var lis = aside.children;
var isClick = false;
var colors = ['green', 'blue', 'red', 'orange'];
for (var i = 0; i < oDiv.length; i++) {
oDiv[i].style.backgroundColor = colors[i];
}
for (var j = 0; j < lis.length; j++) {
lis[j].index = j;
lis[j].onclick = function () {
isClick = true;
for (var k = 0; k < lis.length; k++) {
lis[k].className = '';
}
this.className = 'current';
startAnimation(document.documentElement, {
"scrollTop": this.index * document.body.clientHeight
}, function () {
isClick = false;
})
}
}
window.onscroll = function () {
if (!isClick) {
var docScrollTop = document.documentElement.scrollTop || document.body.scrollTop;
for (var i = 0; i < lis.length; i++) {
if (docScrollTop >= oDiv[i].offsetTop) {
for (var j = 0; j < oDiv.length; j++) {
lis[j].className = '';
}
lis[i].className = 'current';
}
}
}
}
}
</script>
</body>
</html>