获取元素到窗口的绝对位置getAbsPoint()

作者: 山豆山豆 | 来源:发表于2017-04-26 10:43 被阅读49次

获取页面元素到屏幕窗口的绝对距离。//也就是 元素的死距离。

元素的绝对位置.png
 function getAbsPoint(e)
{
    var x = e.offsetLeft;
    var y = e.offsetTop;
    while(e = e.offsetParent)
    {
        x += e.offsetLeft;
        y += e.offsetTop;
    }
    return {'x': x, 'y': y};
};

如果想获得该元素到屏幕顶部的动态距离,需要监听window的scrollTop的值 减去滚动距离就是元素当前到窗口的 动态距离。
JQ的封装尼普浏览器兼容性问题。

我写的网站实例。
http://homedoctor.xieshoue.org/help/manual.html

function getAbsPoint(e) {
            var x = e.offsetLeft;
            var y = e.offsetTop;
            while (e = e.offsetParent) {
                x += e.offsetLeft;
                y += e.offsetTop;
            }
            return {
                'x': x,
                'y': y
            };
        };
        var $aH5tag_r = $('.block_small').find('h5');
        var abs_y = [];
        
        var $aH5tag_l = $('.help_sidebar').find('h5');

        for (var i = 0; i < $aH5tag_r.length; i++) {
            abs_y.push(getAbsPoint($aH5tag_r[i]).y);
        }

        function checkTopNum(domArr) {
            var _index = -1;

            for (var i = 0; i < domArr.length; i++) {
                if (domArr[i] - $(document).scrollTop() < 10) {
                    _index = i;
                }

            }
            return _index;
        }


        $(window).scroll(function(event) {

            if ($(document).scrollTop() <= 160) {
                $('.catalogue').removeClass('scroll');
            } else {
                $('.catalogue').addClass('scroll');
            }

            $aH5tag_l.removeClass('curr');                    
            if (checkTopNum(abs_y) >= 0) {
               $aH5tag_l.eq(checkTopNum(abs_y)).addClass('curr');
              }  
            
        });

相关文章

  • 获取元素到窗口的绝对位置getAbsPoint()

    获取页面元素到屏幕窗口的绝对距离。//也就是 元素的死距离。 如果想获得该元素到屏幕顶部的动态距离,需要监听wi...

  • 元素绝对位置、置顶菜单

    元素绝对位置 1、获取和设置元素的尺寸 width() 、height() 获取元素 width和height i...

  • 懒加载

    如何判断一个元素是否出现在窗口可视范围(浏览器的上边缘和下边缘之间,肉眼可视)。 原理:获取这个元素的绝对位置,判...

  • 前端知识点(15)

    元素绝对位置 $(function(){ var $pos = $('.pos'); //offset()是获取相...

  • 尺寸相关、滚动事件

    1、获取和设置元素的尺寸 2、获取元素相对页面的绝对位置 .offset()3、获取可视区高度 4、获取页面高度 ...

  • jquery尺寸相关,滚动事件

    获取和设置元素的尺寸 获取元素相对页面的绝对位置 获取浏览器可视区宽度高度 获取页面文档的宽度高度 获取页面滚动距...

  • javascript dom元素位置相关方法

    获取dom元素的位置 获取viewport的高度,宽度 浏览器窗口的视口(viewport)高度(以像素为单位),...

  • 2019-06-17

    元素绝对位置 $(function(){ var$pos=$('.pos'); //offset()是获取相对于页...

  • 10-jQuery02

    尺寸相关、滚动事件 1、获取和设置元素的尺寸 加入购物车demo 2、获取元素相对页面的绝对位置 3、获取浏览器可...

  • getBoundingClientRect

    getBoundingClientRect用于获取某个元素相对于视窗口的位置集合,集合中有top right bo...

网友评论

    本文标题:获取元素到窗口的绝对位置getAbsPoint()

    本文链接:https://www.haomeiwen.com/subject/hqkizttx.html