• js获取元素的滚动高度,和距离顶部的高度


    js获取元素的滚动高度,和距离顶部的高度

    复制代码
    获取浏览器显示区域(可视区域)的高度 :   
    $(window).height();   
    获取浏览器显示区域(可视区域)的宽度 :
    $(window).width();   
    获取页面的文档高度   
    $(document).height();   
    获取页面的文档宽度 :
    $(document).width(); 
    浏览器当前窗口文档body的高度:  
    $(document.body).height();
    浏览器当前窗口文档body的宽度: 
    $(document.body).width();
    获取滚动条到顶部的垂直高度 (即网页被卷上去的高度)  
    $(document).scrollTop();   
    获取滚动条到左边的垂直宽度 :
    $(document).scrollLeft(); 
    获取或设置元素的宽度:
    $(obj).width();
    获取或设置元素的高度:
    $(obj).height();
    某个元素的上边界到body最顶部的距离:obj.offset().top;(在元素的包含元素不含滚动条的情况下)
    某个元素的左边界到body最左边的距离:obj.offset().left;(在元素的包含元素不含滚动条的情况下)
    返回当前元素的上边界到它的包含元素的上边界的偏移量:obj.offset().top(在元素的包含元素含滚动条的情况下)
    返回当前元素的左边界到它的包含元素的左边界的偏移量:obj.offset().left(在元素的包含元素含滚动条的情况下)
    复制代码

    js:

     网页被卷起来的高度/宽度(即浏览器滚动条滚动后隐藏的页面内容高度)

    复制代码
    document.documentElement.scrollTop //firefox
    
    document.documentElement.scrollLeft //firefox
    
    document.body.scrollTop //IE
    
    document.body.scrollLeft //IE
    复制代码

    等同于:

    js:

     网页被卷起来的高度/宽度(即浏览器滚动条滚动后隐藏的页面内容高度)

    复制代码
    document.documentElement.scrollTop //firefox
    
    document.documentElement.scrollLeft //firefox
    
    document.body.scrollTop //IE
    
    document.body.scrollLeft //IE
    复制代码

    等同于:

    $(window).scrollTop() 

    $(window).scrollLeft()

     网页工作区域的高度和宽度  

    document.documentElement.clientHeight// IE firefox  

    等同于:

    $(window).height()

     元素距离文档顶端和左边的偏移值  

     obj.offsetTop //IE firefox
    
     obj.offsetLeft //IE firefox

    等同于:

     obj.offset().top

     obj.offset().left

    简单实例(监控元素在可见视图中)

      效果:当元素出现在可见区域时,改变其css样式(背景色变红);

    复制代码
    <!DOCTYPE html>
    <html>
    
        <head>
            <meta charset="UTF-8">
            <title>监控元素出现在视图中</title>
            <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
            <style>
                p {
                    height: 30px;
                    line-height: 30px;
                    background: #f3f3f3;
                    opacity: 0;
                }
            </style>
        </head>
    
        <body>
            <div class="main">
                <p>你好,china!</p>
                <p>你好,china!</p>
                <p>你好,china!</p>
                <p>你好,china!</p>
                <p>你好,china!</p>
                <p>你好,china!</p>
                <p>你好,china!</p>
                <p>你好,china!</p>
                <p>你好,china!</p>
                <p>你好,china!</p>
                <p>你好,china!</p>
                <p>你好,china!</p>
                <p>你好,china!</p>
                <p>你好,china!</p>
                <p>你好,china!</p>
                <p>你好,china!</p>
                <p>你好,china!</p>
                <p>你好,china!</p>
                <p>你好,china!</p>
                <p>你好,china!</p>
                <p>你好,china!</p>
                <p>你好,china!</p>
            </div>
        </body>
        <script>
            function Show() {
                var Height = $(window).height();
                $('p').not('.none').each(function(ind) {
                    var Top = $(this).offset().top; //元素距离顶部距离
                    var scroll = $(document).scrollTop(); //滚动高度
                    console.log(Top + '  ' + scroll);
                    if(Top - Height - scroll <= 0) {
                        setTimeout(function() {
                            $('p').not('.none').eq(ind).addClass('show').css('background', 'red').animate({
                                opacity: 1
                            }, 500);
                        }, 200);
                    }
                });
            }
            $(function() {
                var Height = $(window).height(); //窗口高度
                console.log('可视高度:' + Height);
                $('.main').find('*').each(function() {
                    var Top = $(this).offset().top;
                    if(Top - Height <= 0) {
                        $(this).addClass('none').css({
                            'background': '#09f',
                            'opacity': 1
                        });
                    }
                });
                $(window).scroll(function() {
                    Show();
                })
            })
        </script>
    
    </html>
    复制代码
    认真工作、认真生活,努力做最好的自己!!!
  • 相关阅读:
    初识面向对象
    Git 子模块
    至今为止项目中遇到的问题
    vuex , 简单入(liao)门(jie)
    Git rebase
    Git
    js设计模式工厂模式
    vue slot
    Jquery学习,一道笔试题:关于表格【最近记】
    闭包与this学习
  • 原文地址:https://www.cnblogs.com/songhuihui/p/12376029.html
Copyright © 2020-2023  润新知