亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

js怎么獲取一個元素在屏幕上的位置呢

js怎么獲取一個元素在屏幕上的位置呢

慕工程0101907 2019-03-03 14:32:31
就是元素相對于屏幕左邊和頂邊的距離,不管這個元素是不是脫離了文檔流或者頁面是不是有卷動,怎么能正確獲取到呢?我現在用的offsetTop和offsetLeft有點問題,頁面卷動就不行了
查看完整描述

2 回答

?
慕碼人8056858

TA貢獻1803條經驗 獲得超6個贊

// 兼容低版本IE// 轉換為數字 function intval(v) {
    v = parseInt(v);    return isNaN(v) ? 0 : v;
}function getPos(e) {    // left and top value
    var left = 0;    var top = 0;    // offsetParent返回一個指向最近的定位元素,標準模式如果沒有就返回html/body,表示遷移量都是相對其中來計算.
    while (e.offsetParent) {        // 計算偏移量
        left += e.offsetLeft + (e.currentStyle ? intval(e.currentStyle.borderLeftWidth) : 0);
        top += e.offsetTop + (e.currentStyle ? intval(e.currentStyle.borderTopWidth) : 0);        // 最近的定位元素或者body
        e = e.offsetParent;
    }

    left += e.offsetLeft + (e.currentStyle ? intval(e.currentStyle.borderLeftWidth) : 0);
    top += e.offsetTop + (e.currentStyle ? intval(e.currentStyle.borderTopWidth) : 0);    return {        x: left,        y: top
    };
}document.addEventListener('mousemove', function(e) {    // 即便滾動條再怎么動也不會影響目標DOM距離頂部的距離
    console.log(getPos(document.querySelector('.footer')))
})


查看完整回答
反對 回復 2019-03-03
?
aluckdog

TA貢獻1847條經驗 獲得超7個贊

調用 dom.getBoundingClientRect() 獲取。

查看完整回答
反對 回復 2019-03-03
  • 2 回答
  • 0 關注
  • 4175 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號