2016-08-22 116 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