私のコードで少し助けを得たいと思っていました。これはmoz/webkitでは動作しますが、ieでは動作しません。 IEのJavaScriptエラーの非常に寛容ではない理由:(スクロールのLIに「選択済み」クラスを追加するようIEに指示するにはどうすればよいですか?
$(window).trigger('hashchange');
// Add .selected class to nav on page scroll
var $sections = $('section');
var $navs = $('nav > ul > li');
var topsArray = $sections.map(function() {
return $(this).position().top - 50;
}).get();
var len = topsArray.length;
var currentIndex = 0;
var getCurrent = function(top) {
for(var i = 0; i < len; i++) {
if(top > topsArray[i] && topsArray[i+1] && top < topsArray[i+1]) {
return i;
}
}
};
$(document).scroll(function(e) {
var scrollTop = $(this).scrollTop();
var secondSection = topsArray[1];
if(scrollTop <= 200) { // moved past the header
$navs.eq(0).removeClass("selected")
} else if(scrollTop >= 205 && scrollTop <= secondSection) { // between header and 2nd section
$navs.eq(0).addClass("selected")
}
var checkIndex = getCurrent(scrollTop);
if(checkIndex !== currentIndex) {
currentIndex = checkIndex;
$navs.eq(currentIndex).addClass("selected").siblings(".selected").removeClass("selected");
}
});
IEのどのバージョン? –