鍍金池/ 問答/HTML5  HTML/ Javascript如何獲取當(dāng)前窗口顯示的標(biāo)簽?

Javascript如何獲取當(dāng)前窗口顯示的標(biāo)簽?

現(xiàn)在有這樣的一個(gè)實(shí)現(xiàn)需求,當(dāng)頁面上下滾動(dòng)時(shí),我需要時(shí)時(shí)獲取滾動(dòng)到當(dāng)前可視區(qū)域的標(biāo)簽,有什么辦法嗎?

目前已知使用visible屬性是不太好用的,頁面經(jīng)常會(huì)有錨點(diǎn)跳動(dòng),這個(gè)屬性獲取的不太準(zhǔn)確

回答
編輯回答
孤客

不知道我有沒有理解對(duì),看看這個(gè)stickUp插件是不是你要的效果
http://lirancohen.github.io/s...

2017年9月26日 11:17
編輯回答
瘋浪

如果需要判斷某幾個(gè)元素是否進(jìn)入視窗話可以用下面的方法:

var isInViewport = function (elem) {
    var bounding = elem.getBoundingClientRect();
    return (
        bounding.top >= 0 &&
        bounding.left >= 0 &&
        bounding.bottom <= (window.innerHeight || document.documentElement.clientHeight) &&
        bounding.right <= (window.innerWidth || document.documentElement.clientWidth)
    );
};
window.addEventListener('scroll', function (event) {
    if (isInViewport(elem)) { //elem就是希望判斷是否進(jìn)入視窗的元素
        
    }
}, false);
2017年12月16日 06:43
編輯回答
淺淺

沒有特別好的辦法,只能對(duì)每個(gè)元素取 .getBoundingClientRect(),然后配合 document.body.scrollTop 來判斷了,性能不會(huì)太好。

2017年9月13日 01:28