zoukankan      html  css  js  c++  java
  • scroll 系列属性

     滚动案例

    <!DOCTYPE html>
    <html lang="en">

    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
        <style>
            .slider-bar {
                position: absolute;
                left: 50%;
                top: 300px;
                margin-left: 600px;
                 45px;
                height: 130px;
                background-color: pink;
            }
            
            .w {
                 1200px;
                margin: 10px auto;
            }
            
            .header {
                height: 150px;
                background-color: purple;
            }
            
            .banner {
                height: 250px;
                background-color: skyblue;
            }
            
            .main {
                height: 1000px;
                background-color: yellowgreen;
            }
            
            span {
                display: none;
                position: absolute;
                bottom: 0;
            }
        </style>
    </head>

    <body>
        <div class="slider-bar">
            <span class="goBack">
                <a href="#header">返回顶部</a>
            </span>
        </div>
        <div class="header w" id="header">头部区域</div>
        <div class="banner w">banner区域</div>
        <div class="main w">主体部分</div>
        <script>
            // 1 获取元素
            var sliderbar = document.querySelector('.slider-bar');
            var banner = document.querySelector('.banner');
            // 被滚动距离的大小
            var barnerTop = banner.offsetTop;
            // 侧边栏固定定位之后 应该变化的值
            var sliderbarTop = sliderbar.offsetTop - barnerTop;

            // 获取main 主体元素
            var main = document.querySelector('.main');

            var goBack = document.querySelector('.goBack');
            var mainTop = main.offsetTop;
            // 2 页面滚动事件 scroll
            document.addEventListener('scroll', function() {
                // 页面滚动的头部
                // console.log(window.pageYOffset);
                // 3 当滚动距离大于 172  侧边栏改为固定定位
                if (window.pageYOffset >= barnerTop) {
                    sliderbar.style.position = 'fixed';
                    sliderbar.style.top = sliderbarTop + 'px';
                } else {
                    sliderbar.style.position = 'absolute';
                    sliderbar.style.top = '300px';
                }

                // 4 当也没滚动到 main 盒子 显示 返回顶部模块
                if (window.pageYOffset >= mainTop) {
                    goBack.style.display = 'block';
                } else {
                    goBack.style.display = 'none';
                }
            })
        </script>
    </body>

    </html>
  • 相关阅读:
    js计算两个时间相差天数
    享元模式
    外观模式
    组合模式
    装饰者模式
    桥接模式
    适配器模式
    元素量词 ? + *
    linux安装使用7zip
    linux shell使用别名,切换当前目录
  • 原文地址:https://www.cnblogs.com/ericblog1992/p/13060830.html
Copyright © 2011-2022 走看看