scroll家族

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>

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值