2015-06-03 113 views
4

我在[本站] [1]上有一個「粘」綠條。在Chrome中滾動時,欄會向上移動並粘貼到頁面的頂部,並在滾動時保持不變。但我只注意到它不會在Firefox或IE中執行此操作。我使用的JavaScript如下。任何人有任何想法,爲什麼它只能在Chrome中工作? (無法在移動工作,要麼,僅供參考)爲什麼在Firefox/IE中不能「粘」JavaScript工作?

// to make sub nav stick to top 
jQuery(function($) { 
    var docked = false; 
    var menu = $('.sticky_cta'); 
    var init = menu.offset().top; 

    $(window).scroll(function() {  
     if (!docked && (menu.offset().top - $("body").scrollTop() < 50)) { 
      menu.css({ 
       position : "fixed", 
       top: 0, 
      }); 
      docked = true; 
     } 
     else if (docked && $("body").scrollTop() <= init) { 
      menu.css({ 
       position: "relative", 
      }); 
      docked = false; 
     } 
    }); 
}); 

[1]:

+0

它閃爍時,它開始堅持 – smnbbrv

+1

首先,你可以使用'位置:sticky'在Firefox,所以谷歌那。其次,這個腳本顯然是有缺陷的,因爲它不適用於任何**,但是** chrome。我寫了這個,所以你可以使用它 - http://codepen.io/vsync/pen/Kgcoa – vsync

+0

在Chrome上打開鏈接,它根本不堅持。我在控制檯上得到這個'未捕獲的類型錯誤:無法讀取'find'屬性null - sticky.js' –

回答

0

嘗試使用航點,以確保你的酒吧棒在所有瀏覽器上,你會發現它的使用方法很簡單,也有粘性元素的捷徑。

類似的東西來這應該做的伎倆:

menu.waypoint({ 
    handler: function (direction) { 
     if (direction == 'down') { 
      menu.css({ 
       position: "fixed", 
       top: 0, 
      }); 
     } else if (direction == 'up') { 
      menu.css({ 
       position: "relative", 
      }); 
     } 
    }, 
    offset: //Whatever offset you need 
}); 

文檔瀏覽:

http://imakewebthings.com/waypoints/

快捷鍵:

http://imakewebthings.com/waypoints/shortcuts/sticky-elements/

0

嘗試用:

通過document.documentElement.scrollTop

$("body").scrollTop我想更換$("body").scrollTop已被棄用,在FF返回0

相關問題