1:概念
网页正文文宽:document.body.scrollWidth.
网页正文全高:document.body.scrollHeight.
网页被卷去的高: document.body.scrollTop.
网页被卷去的左:'document.body.scrollLeft.
一般在开发中使用最多的是scrollTop.
补充:严格模式和怪异模式
使用:document.compatMode.
值为BackCompat,则是怪异模式;值为Css1Compat,则为严格模式。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<style>
body{
height: 3000px;
}
</style>
</head>
<body>
<script>
// console.log(document.body.scrollTop);
window.onscroll=function (ev) {
//console.log(document.body.scrollTop);
//console.log(document.documentElement.scrollTop); //兼容
console.log(document.compatMode);
//console.log(window.pageYOffset); //支持所有版本
}
</script>
</body>
</html>
案例:
《1 中部导航吸顶案例:
本案例就是实现当箭头滚动时,红色横线部分静止不动,吸住不动。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<style>
*{margin: 0;padding: 0;list-style: none;border: none}
img{vertical-align: top;width: 100%}
section{width: 70%;margin: 0 auto}
.nav{
position:fixed;
left: 0;
top: 0;
width: 100%;
}
</style>
</head>
<body>
<header id="head">
<img src="images/top.png" alt="">
</header>
<nav id="nav">
<img src="images/nav.png" alt="">
</nav>
<section >
<img src="images/body01.png" alt="">
<img src="images/body02.png" alt="">
</section>
<script src="js/MyFunc.js"></script>
<script>
window.onload=function (){
//1求出头部高度
var navTopHeight=$('nav').offsetTop;
//2监听页面滚动
window.onscroll=function (ev) {
var scrollTopHeight=scroll().top;
console.log(scrollTopHeight);
//2.1判断
if (scrollTopHeight>=navTopHeight){
$('nav').className='nav';
}else {
$('nav').className='';
}
}
}
</script>
</body>
</html>
《2 侧边横幅特效案例
我们滑动页面,在页面旁边总会有小广告,但这广告是随着页面滚动到结束滚动,侧边横幅都会停止在原本的位置。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<style>
*{margin: 0;padding: 0;list-style: none;border: none;}
#aside{width: 150px;position: absolute;left: 0;top: 150px;}
#aside img{width: 100%;}
p{height: 50px;font-size: 20px;text-align: center;}
</style>
</head>
<body>
<div id="aside">
<img src="images/float.jpg" alt="">
</div>
<div>
<p>上课要好好听课!下课要好好复习!不要打游戏!</p>
<p>上课要好好听课!下课要好好复习!不要打游戏!</p>
<p>上课要好好听课!下课要好好复习!不要打游戏!</p>
<p>上课要好好听课!下课要好好复习!不要打游戏!</p>
<p>上课要好好听课!下课要好好复习!不要打游戏!</p>
<p>上课要好好听课!下课要好好复习!不要打游戏!</p>
<p>上课要好好听课!下课要好好复习!不要打游戏!</p>
<p>上课要好好听课!下课要好好复习!不要打游戏!</p>
<p>上课要好好听课!下课要好好复习!不要打游戏!</p>
<p>上课要好好听课!下课要好好复习!不要打游戏!</p>
<p>上课要好好听课!下课要好好复习!不要打游戏!</p>
<p>上课要好好听课!下课要好好复习!不要打游戏!</p>
<p>上课要好好听课!下课要好好复习!不要打游戏!</p>
<p>上课要好好听课!下课要好好复习!不要打游戏!</p>
<p>上课要好好听课!下课要好好复习!不要打游戏!</p>
<p>上课要好好听课!下课要好好复习!不要打游戏!</p>
<p>上课要好好听课!下课要好好复习!不要打游戏!</p>
<p>上课要好好听课!下课要好好复习!不要打游戏!</p>
<p>上课要好好听课!下课要好好复习!不要打游戏!</p>
<p>上课要好好听课!下课要好好复习!不要打游戏!</p>
<p>上课要好好听课!下课要好好复习!不要打游戏!</p>
<p>上课要好好听课!下课要好好复习!不要打游戏!</p>
<p>上课要好好听课!下课要好好复习!不要打游戏!</p>
<p>上课要好好听课!下课要好好复习!不要打游戏!</p>
<p>上课要好好听课!下课要好好复习!不要打游戏!</p>
<p>上课要好好听课!下课要好好复习!不要打游戏!</p>
<p>上课要好好听课!下课要好好复习!不要打游戏!</p>
<p>上课要好好听课!下课要好好复习!不要打游戏!</p>
<p>上课要好好听课!下课要好好复习!不要打游戏!</p>
<p>上课要好好听课!下课要好好复习!不要打游戏!</p>
<p>上课要好好听课!下课要好好复习!不要打游戏!</p>
<p>上课要好好听课!下课要好好复习!不要打游戏!</p>
<p>上课要好好听课!下课要好好复习!不要打游戏!</p>
<p>上课要好好听课!下课要好好复习!不要打游戏!</p>
<p>上课要好好听课!下课要好好复习!不要打游戏!</p>
<p>上课要好好听课!下课要好好复习!不要打游戏!</p>
<p>上课要好好听课!下课要好好复习!不要打游戏!</p>
<p>上课要好好听课!下课要好好复习!不要打游戏!</p>
<p>上课要好好听课!下课要好好复习!不要打游戏!</p>
<p>上课要好好听课!下课要好好复习!不要打游戏!</p>
<p>上课要好好听课!下课要好好复习!不要打游戏!</p>
<p>上课要好好听课!下课要好好复习!不要打游戏!</p>
<p>上课要好好听课!下课要好好复习!不要打游戏!</p>
<p>上课要好好听课!下课要好好复习!不要打游戏!</p>
<p>上课要好好听课!下课要好好复习!不要打游戏!</p>
<p>上课要好好听课!下课要好好复习!不要打游戏!</p>
<p>上课要好好听课!下课要好好复习!不要打游戏!</p>
<p>上课要好好听课!下课要好好复习!不要打游戏!</p>
<p>上课要好好听课!下课要好好复习!不要打游戏!</p>
<p>上课要好好听课!下课要好好复习!不要打游戏!</p>
<p>上课要好好听课!下课要好好复习!不要打游戏!</p>
<p>上课要好好听课!下课要好好复习!不要打游戏!</p>
<p>上课要好好听课!下课要好好复习!不要打游戏!</p>
<p>上课要好好听课!下课要好好复习!不要打游戏!</p>
<p>上课要好好听课!下课要好好复习!不要打游戏!</p>
<p>上课要好好听课!下课要好好复习!不要打游戏!</p>
<p>上课要好好听课!下课要好好复习!不要打游戏!</p>
<p>上课要好好听课!下课要好好复习!不要打游戏!</p>
<p>上课要好好听课!下课要好好复习!不要打游戏!</p>
<p>上课要好好听课!下课要好好复习!不要打游戏!</p>
<p>上课要好好听课!下课要好好复习!不要打游戏!</p>
<p>上课要好好听课!下课要好好复习!不要打游戏!</p>
<p>上课要好好听课!下课要好好复习!不要打游戏!</p>
<p>上课要好好听课!下课要好好复习!不要打游戏!</p>
<p>上课要好好听课!下课要好好复习!不要打游戏!</p>
<p>上课要好好听课!下课要好好复习!不要打游戏!</p>
<p>上课要好好听课!下课要好好复习!不要打游戏!</p>
<p>上课要好好听课!下课要好好复习!不要打游戏!</p>
<p>上课要好好听课!下课要好好复习!不要打游戏!</p>
<p>上课要好好听课!下课要好好复习!不要打游戏!</p>
<p>上课要好好听课!下课要好好复习!不要打游戏!</p>
<p>上课要好好听课!下课要好好复习!不要打游戏!</p>
<p>上课要好好听课!下课要好好复习!不要打游戏!</p>
<p>上课要好好听课!下课要好好复习!不要打游戏!</p>
<p>上课要好好听课!下课要好好复习!不要打游戏!</p>
</div>
<script src="js/MyFunc.js"></script>
<script>
window.onload=function () {
//1获取头部高度
var offsetTOP=$('aside').offsetTop;
//2监听文档滚动
var begin=0,end=0,timeID=null;
window.onscroll=function (ev) {
//2.0清除定时器
clearInterval(timeID);
//2.1获取滚动产生的高度
var scrollTopHeight=scroll().top;
end=offsetTOP + scrollTopHeight;
//2.2缓动动画
timeID=setInterval(function (){
begin +=(end - begin)*0.2;
$('aside').style.top=begin+'px';
console.log(begin, end);
if (Math.round(begin)===end){
clearInterval(timeID);
}
},20)
}
}
</script>
</body>
</html>
《3返回顶部案例:
常见在电商网站上的商品页面浏览,我们会经常浏览到顶部一下许多,但当要返回顶部时,都会选择返回顶部的操作键。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<style>
*{margin: 0;padding: 0;list-style: none;border: none}
body{background-color: #cccccc;}
p{margin-bottom: 20px;text-align: center;}
#top{
width: 43px;
height: 43px;
background: url("images/top.png")no-repeat;
background-size: 100% 100%;
position: fixed;
right: 10px;
bottom: 30px;
display: none;
}
</style>
</head>
<body>
<span id="top"></span>
<div>
<p>今天天气很好!</p>
<p>今天天气很好!</p>
<p>今天天气很好!</p>
<p>今天天气很好!</p>
<p>今天天气很好!</p>
<p>今天天气很好!</p>
<p>今天天气很好!</p>
<p>今天天气很好!</p>
<p>今天天气很好!</p>
<p>今天天气很好!</p>
<p>今天天气很好!</p>
<p>今天天气很好!</p>
<p>今天天气很好!</p>
<p>今天天气很好!</p>
<p>今天天气很好!</p>
<p>今天天气很好!</p>
<p>今天天气很好!</p>
<p>今天天气很好!</p>
<p>今天天气很好!</p>
<p>今天天气很好!</p>
<p>今天天气很好!</p>
<p>今天天气很好!</p>
<p>今天天气很好!</p>
<p>今天天气很好!</p>
<p>今天天气很好!</p>
<p>今天天气很好!</p>
<p>今天天气很好!</p>
<p>今天天气很好!</p>
<p>今天天气很好!</p>
<p>今天天气很好!</p>
<p>今天天气很好!</p>
<p>今天天气很好!</p>
<p>今天天气很好!</p>
<p>今天天气很好!</p>
<p>今天天气很好!</p>
<p>今天天气很好!</p>
<p>今天天气很好!</p>
<p>今天天气很好!</p>
<p>今天天气很好!</p>
<p>今天天气很好!</p>
<p>今天天气很好!</p>
<p>今天天气很好!</p>
<p>今天天气很好!</p>
<p>今天天气很好!</p>
<p>今天天气很好!</p>
<p>今天天气很好!</p>
<p>今天天气很好!</p>
<p>今天天气很好!</p>
<p>今天天气很好!</p>
</div>
<script src="js/MyFunc.js"></script>
<script>
window.onload=function () {
//0变量
var scrollTopH=0,begin=0,end=0,timeID=null;
//1监听页面滚动
window.onscroll=function (ev) {
//1.1获取滚动高度
scrollTopH=scroll().top;
//1.2标签显示和隐藏
scrollTopH >0 ?show($('top')) : hide($('top'));
begin=scrollTopH
//2 监听点击
$('top').onclick=function (){
//2.1 清除定时器
clearInterval(timeID);
//2.2开启缓动动画
timeID=setInterval(function () {
begin += (end-begin)*0.2
window.scrollTo(0,begin)
console.log(begin, end);
//2.3 清除定时器
if (Math.round(begin)===end){
clearInterval(timeID)
}
},20);
}
}
}
</script>
</body>
</html>