2

正常工作我創建了一個網站與所述標題下的導航。當在導航上滾動時,其位置在頂部固定並且其顏色改變。引導導航不是在MS邊緣/ IE

在Chrome和Firefox中一切正常,但在Edge或Internet Explorer中,每當用戶滾動時,導航顏色都會改變顏色。

爲倒導航欄的CSS:

.top-nav-invert { 
    z-index: 99; 
    background-color: #fff; 
    height: 80px; 
    border-bottom: 1px solid #ededed; 
    -webkit-box-shadow: 0px 1px 8px 0px rgba(68, 68, 68, 0.07); 
    box-shadow: 0px 1px 8px 0px rgba(68, 68, 68, 0.07); 
} 

.top-nav-invert a { 
    color: #000 !important; 
    -webkit-transition: all 1s; 
    transition: all 1s; 
} 

JS:

if ($(".navbar").offset().top > 320) { 
     $(".navbar").addClass("top-nav-invert"); 
    } else { 
     $(".navbar").removeClass("top-nav-invert"); 
    } 

爲了更好地理解我做什麼,我把代碼的其餘部分爲codepen:

http://codepen.io/marcomai/pen/OMjgXp

爲什麼這是IE的一個問題,我能做什麼?

回答

0

我將仔細研究這個問題,看看我們是否可以確定Microsoft Edge團隊的改進領域。在此期間,我可以證實,一個快速的去抖動會導致更好的體驗。

而是具有以下內容:

$(window).on("scroll", function() { 
    /* Logic Here */ 
}); 

執行以下操作:

var debounce; 

$(window).on("scroll", function() { 
    clearTimeout(debounce); 
    debounce = setTimeout(function() { 
     /* Logic Here */ 
    }, 50);   
}); 

在此期間,我會繼續關注這個演示。

+0

感謝您尋找到它。不是完美的解決方案,但肯定已經好多了。 – Marco

+0

@ s4ndm4nn作爲一般規則,你要非常小心諸如'window.onscroll'之類的事情,因爲這些類型的事件每秒可以被觸發多次。您通常不希望出差到DOM,或更新每個處理事件的佈局。這可能會導致額外的電池消耗,幀丟失等等。另外,如果您認爲這有助於您的情況,請考慮接受此答案。 – Sampson