2013-04-22 58 views
1

我正在使用固定位置的頂部導航欄,在訪客開始滾動後「出現」。 (出現在背景更改中,徽標大小調整和邊框顯示,以便它看起來與網頁的其餘部分分開,導航鏈接本身已在頁面頂部顯示)。當滾動回網頁頂部時觸發功能的問題

使用jQuery的scroll()和animate()顯示部分非常簡單。

$(window).scroll(function(){ 
    $('.logo img').animate({"height": "65px"}, 500); 
    $('#header').css({"border": "1px solid #999", "padding-top": "1px"}); 
}); 

但是,這是我絆倒被撤銷更改當訪問者滾動回到頂部,使導航欄融爲一體回網頁中的一部分。

我添加了一個位置函數,它似乎工作得很好......但是...... img調整大小在返回到頂部時會延遲,有時會延長一兩分鐘。邊界和填充更改在返回頂部後立即生效,只有img調整大小會延遲。

$(window).scroll(function(){ 
    if ($(this).scrollTop()>0) { 
      $('.logo img').animate({"height": "65px"}, 300); 
      $('#header').css({"border": "1px solid #999", "padding-top": "1px"}); 
    } else { 
      $('.logo img').animate({"height": "114px"}, 300); 
      $('#header').css({"border": "1px solid #fff", "padding-top": "8px"}) 
    } 
}); 

如果我改變兩者的IMG功能,CSS()它的工作原理,但我失去動畫提供了圖像的平滑萎縮。

那裏的專家的任何建議?

回答

1

嘗試增加.stop()animate函數

$('.logo img').stop().animate({"height": "65px"}, 300); 
+1

或者,背後用'.stop(真,真)' – Terry 2013-04-22 11:08:56

+0

感謝,似乎把戲。我認爲必須有一些簡單的東西,但是因爲我只在一個網站上工作,所以我沒有很多jQuery的經驗。 – Tom 2013-04-22 11:11:04

+0

stop(true,true)似乎禁用了動畫功能,而stop()則不。 – Tom 2013-04-22 11:13:47