2014-04-09 76 views
0

我有一個簡單的onScroll函數,當滾動(向下)高度爲100時顯示一個DIV,然後如果滾動到100,它就會隱藏div,工作完善。jQuery onScroll()顯示和隱藏DIV

但是,如果我快速向下滾動並同時顯示DIV,如果我快速向下滾動兩次三次,它不會捕捉事件,即使它再次出現,它仍然顯示DIV,但再次如果我向下滾動1個像素,它會隱藏它,如果達到100,那麼它會再次顯示DIV ..我希望我明白了,我沒有在線演示,因爲我在本地主機上工作..下面是我的功能,我是使用模板中在短短<獨立* script>標記..

jQuery(document).scroll(function ($) { 

     var y = jQuery(this).scrollTop();  
     var hoffset = 100; 

     if (y > hoffset) { 
      // show div 
     } else { 
      // hide div 
     } 
    }); 

可有人請指引我正確的方向,還有什麼其他最佳方法可以爲此做,基本上我做這行標題導航股利。

關於

回答

0

你想要這樣嗎?請參閱我的Fiddle

改爲使用fadeIn()和​​。

+0

喜urbz,甚至在你的例子,如果你快速向下滾動,向上,向右滾動,其中DIV淡入淡出,快速上下滾動6-7次,即使你停下來繼續淡出和淡出,它也必須停下來。那就是我遇到的問題。 – user1718343

+0

這取決於'body'的高度和'div'的高度。在我的小提琴示例中,嘗試將高度設置爲750px;並且您會看到不同之處。我讀過的地方,雖然幾個瀏覽器有這個特殊的滾動動畫的問題,就像這樣從這種情況下:https://stackoverflow.com/questions/9235167/jquery-animate-scrolltop-not-working-properly – urbz

0

我發現停止動畫,而其在進程低於和作品的唯一途徑..

jQuery('.thedivclass').stop(false, true).slideDown();