2016-08-22 331 views
-2

我有一個修復div,當我向下滾動時,當我滾動時,需要將它隱藏到特定的ID。當到達特定的ID時,隱藏滾動的div元素

+0

你嘗試過什麼?你可以張貼一些代碼嗎。有些網站教你這種東西(www.w3schools.com就是其中之一)。 CSS很可能是你需要的,但我需要更多的信息來幫助你。 – nurchi

+0

你可以嘗試比較div位置(頂部)和你想要達到的元素。嘗試使用getBoundingClientRect()函數:document.getElementById(「idOfElment」)。getBoundingClientRect()。頂部 –

+0

@RicardoPontual謝謝。 我發現這個(檢查鏈接),但我需要改變它以某種方式使用ID而不是像素,我不能! http://codepen.io/samora/pen/JKqyNE – SaMore

回答

0

試試這個:

$.fn.isOnScreen = function() { 
    var win = $(window); 
    var viewport = { 
     top: win.scrollTop(), 
     left: win.scrollLeft() 
    }; 
    viewport.right = viewport.left + win.width(); 
    viewport.bottom = viewport.top + win.height(); 
    var bounds = this.offset(); 
    bounds.right = bounds.left + this.outerWidth(); 
    bounds.bottom = bounds.top + this.outerHeight(); 
    return (!(viewport.right < bounds.left || viewport.left > bounds.right || viewport.bottom < bounds.top || viewport.top > bounds.bottom)); 
}; 

而且使用這樣的:

$(window).scroll(function() { 
    if ($('#sampleId').isOnScreen() == true) { 
     $('.fixDiv').hide(); 
    } 
    else{ 
     $('.fixDiv').show(); 
    } 
}); 
+0

謝謝穆罕默德! ($(this).scrollTop()> 200){//使用'this',而不是'document' $('。fixedelement')我發現這個$(window).scroll(function(){ ) .css({'display':'none' }); } }); 但我想知道如果我可以告訴一旦達到xxxxID,隱藏yyyyID? – SaMore

+0

@SasanMoradian如果答案解決了您的問題,請將其標記爲已接受並將其投票:)謝謝。 –

+0

謝謝@Mohammad Reza,這確實做到了! – SaMore