表单全选和取消全选

请添加图片描述

 <style>
        .w {
            width: 1000px;
            margin: 0 auto;
            margin-top: 10px;
        }
        
        .header {
            height: 200px;
            background-color: purple;
        }
        
        .banner {
            height: 300px;
            background-color: skyblue;
        }
        
        .main {
            height: 1000px;
            background-color: yellowgreen;
        }
        
        span {
            display: none;
            position: absolute;
            bottom: 0;
        }
        
        .slider-bar {
            position: absolute;
            top: 400px;
            left: 50%;
            margin-left: 500px;
            width: 30px;
            height: 100px;
            background-color: pink;
        }
    </style>

<body>
    <div class="slider-bar">
        <span class="goBack">返回顶部</span>
    </div>
    <div class="header w">头部区域</div>
    <div class="banner w">banner区域</div>
    <div class="main w">主体部分</div>
    <script>
        // 1.获取元素
        var slider_bar = document.querySelector('.slider-bar');
        var banner = document.querySelector('.banner');
        //  banner.offsetTop被卷去头部的大小,一定要写在滚动的外面
        var bannerTop = banner.offsetTop;
        // 侧边栏固定定位之后变化的数值
        var sliderbarTop = slider_bar.offsetTop - bannerTop;
        // 获取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.被卷去头部大于212时候,侧边栏改为固定定位
            if (window.pageYOffset >= bannerTop) {
                slider_bar.style.position = 'fixed';
                slider_bar.style.top = sliderbarTop + 'px';
            } else {
                slider_bar.style.position = 'absolute';
                slider_bar.style.top = '400px';

            }
            if (window.pageYOffset >= mainTop) {
                goBack.style.display = 'block';
            } else {
                goBack.style.display = 'none';

            }
        });
        // 点击返回顶部模块,让窗口滚动到页面最上方
        goBack.addEventListener('click', function() {
            // 里面的xy不加单位
            //窗口滚动,对象是window 
            animate(window, 0);
        });
        //动画函数
        function animate(obj, target, callback) {
            clearInterval(obj.timer);
            obj.timer = setInterval(function() {
                // 步长值写到定时器的里面
                // 把步长值改为整数,不要出现小数的问题
                var step = (target - window.pageYOffset) / 10;
                step = step > 0 ? Math.ceil(step) : Math.floor(step);
                if (window.pageYOffset == target) {
                    clearInterval(obj.timer);
                    // 回调函数位置:定时器结束的位置
                    if (callback) {
                        // 调用函数
                        callback();
                    }
                }
                // 把每次步长值给为逐渐变小的值(目标值-现在位置/10)
                // obj.style.left = window.pageYOffset + step + 'px';
                window.scroll(0, window.pageYOffset + step);
            }, 15);
        }
    </script>
    </body>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值