Javascript 引导导航在MS Edge/IE中无法正常工作
我创建了一个标题下带有导航的网站。当滚动浏览导航时,它的位置固定在顶部,颜色也会改变 在Chrome和Firefox中一切正常,但在Edge或Internet Explorer中,每次用户滚动时导航都会改变颜色 反转导航栏的CSS:Javascript 引导导航在MS Edge/IE中无法正常工作,javascript,css,twitter-bootstrap,internet-explorer,microsoft-edge,Javascript,Css,Twitter Bootstrap,Internet Explorer,Microsoft Edge,我创建了一个标题下带有导航的网站。当滚动浏览导航时,它的位置固定在顶部,颜色也会改变 在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:
.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:
为了更好地理解我所做的,我将代码的其余部分放入了代码笔:
为什么这是IE中的一个问题?我能做些什么?我将更仔细地研究这个问题,看看我们能否确定Microsoft Edge团队需要改进的地方。同时,我能够确认快速去盎司将带来更好的体验 而不是具有以下内容:
$(窗口)。在(“滚动”)上,函数(){
/*这里的逻辑*/
});
请执行以下操作:
var去盎司;
$(窗口)。打开(“滚动”,函数(){
清除超时(去盎司);
解盎司=设置超时(函数(){
/*这里的逻辑*/
}, 50);
});
同时,我将继续研究此演示。感谢您的研究。这不是一个完美的解决方案,但肯定已经好得多了。@s4ndm4nn一般来说,您需要非常小心处理
window.onscroll
,因为这些类型的事件每秒可以触发多次。您通常不希望访问DOM,也不希望在每个处理的事件上更新布局。这可能会导致额外的电池消耗、帧丢失等。另外,如果你觉得在你的处境中有所帮助,请考虑接受这个答案。
if ($(".navbar").offset().top > 320) {
$(".navbar").addClass("top-nav-invert");
} else {
$(".navbar").removeClass("top-nav-invert");
}