• 仿淘宝侧边栏滚动案例:


    仿淘宝侧边栏滚动

    案例情况:

    1. 原先侧边栏是绝对定位
    2. 当页面滚动到一定位置,侧边栏改为固定定位
    3. 页面继续滚动,会让 返回顶部显示出来

    案例分析:

    1. 需要用到页面滚动事件 scroll  因为是页面滚动,所以事件源是document
    2. 滚动到某个位置,就是判断页面被卷去的上部值。
    3. 页面被卷去的头部:可以通过window.pageYOffset 获得  如果是被卷去的左侧window.pageXOffset
    4. 注意,元素被卷去的头部是element.scrollTop  , 如果是页面被卷去的头部 则是 window.pageYOffset
    5. 这个值 可以通过盒子的 offsetTop可以得到,如果大于等于这个值,就可以让盒子成固定定位了
     
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>仿淘宝侧边栏</title>
        <style>
            * {
                margin: 0;
                padding: 0;
            }
            
            .slider_box {
                position: absolute;
                left: 50%;
                margin-left: 550px;
                top: 456px;
                z-index: 3;
                /* margin-left: 600px; */
            }
            
            .slider_box li {
                 50px;
                height: 50px;
                list-style: none;
                background-color: pink;
                border: 1px solid #ccc;
                text-align: center;
                line-height: 50px;
                font-size: 12px;
            }
            
            .container {
                position: relative;
                 1200px;
            }
            
            .slider_box .backward {
                display: none;
            }
            
            .title {
                 1200px;
                height: 100px;
                background-color: pink;
            }
            
            .header {
                 1200px;
                height: 300px;
                background-color: chocolate;
            }
            
            .banner {
                margin-top: 10px;
                 1200px;
                height: 500px;
                background-color: blue;
            }
            
            .main {
                margin-top: 10px;
                 1200px;
                height: 800px;
                background-color: chartreuse;
            }
        </style>
    </head>

    <body>

        <div class="slider_box">
            <ul>
                <li></li>
                <li class="backward">返回顶部</li>
                <li></li>
                <li></li>
            </ul>
        </div>
        <div class="container">
            <div class="title"></div>
            <div class="header">header</div>
            <div class="banner">banner</div>
            <div class="main">main</div>
        </div>
     
        <script>
            //1. 获取元素
            var slider_box = document.querySelector('.slider_box');
            var banner = document.querySelector('.banner');
            var main = document.querySelector('.main');
            var backward = document.querySelector('.backward')
                // banner.offestTop 就是被卷去头部的大小 一定要写到滚动的外面
            var bannerh = banner.offsetTop;
            var sliderh = slider_box.offsetTop;
            var bhight = sliderh - bannerh;
            var mainh = main.offsetTop;
            // 2. 页面滚动事件 scroll
            document.addEventListener('scroll', function() {
                // 3 .当我们页面被卷去的头部大于等于了 banner的高度,侧边栏就要改为固定定位
                if (window.pageYOffset >= bannerh) {
                    slider_box.style.position = 'fixed';
                    slider_box.style.top = bhight + 'px';
                } else {
                    slider_box.style.position = 'absolute';
                    slider_box.style.top = sliderh + 'px';
                }
                // 4. 当我们页面滚动到main盒子,就显示 backward模块
                if (window.pageYOffset >= mainh) {
                    backward.style.display = 'block';
                } else {
                    backward.style.display = 'none';
                }
            })
        </script>
    </body>
    </html>
  • 相关阅读:
    查看Linux系统版本和内核信息
    XManager连接CentOS6.5
    Linux系统中Ant的安装与实例应用
    Linux常用命令列表
    虚拟机中CentOS系统添加新磁盘
    Linux-IP网络设置
    [原创]Toolbar setNavigationIcon无效
    [转]JAVA回调机制(CallBack)详解
    [原创]PM2使nodejs应用随系统启动
    [原创]Linux(CentOS)下安装mongodb
  • 原文地址:https://www.cnblogs.com/rainbowupdate/p/12552796.html
Copyright © 2020-2023  润新知