你是对的,StackOverflow上有大量类似的查询,但在阅读/分析至少20后,我还没有找到正确的答案。我确认我的脚本包含
$('body,html').animate({scrollTop:$(this).offset().top},800);
而不是
$("body").animate({scrollTop:$(this).offset().top},800);
如此处指定:scrollTop doesn't work on firefox and IE?无济于事。我还尝试了其他一些修改,阻止它在所有浏览器上工作。
虽然脚本在我检查过的所有其他内容(Chrome,Firefox,Opera)上运行良好,但它在Windows 8.1 / IE11上无法正常工作。它应该隐藏#featuring_wrap,显示#DIV_X并滚动到它。除了滚动之外,它还可以执侧边栏更高,但它不会滚动到DIV。
我在另一篇文章中读到jQuery v1.x用于< = IE8而v2.x用于> = IE10。这可能是罪魁祸首吗?我希望不 - 我已经尝试使用v2.1.1,但页面上的其他内容都停止工作(滑块,其他隐藏/显示功能)。
以下是该脚本的两个版本。第一个是我正在使用的。使用第二个版本时没有区别。
$(document).ready(function(){
$("#featured-product-nav a").click(function(){
$("#featuring_wrap").hide();
var id = $(this).attr('id');
id = id.split('_');
$("#divs_container > div").removeClass("active");
$("#divs_container > #div_"+id[1]).addClass("active");
$("#divs_container > div:not(.active)").slideUp();
$("#divs_container > div.active").slideToggle(function(){
$('body,html #divs_container > #div_"+id[1]').animate({
scrollTop: $("#div_"+id[1]).offset().top
}, 800);
});
});
return false
});
$(document).ready(function(){
$("#featured-product-nav a").click(function(){
$("#featuring_wrap").hide();
var id = $(this).attr('id');
id = id.split('_');
$("#divs_container div").removeClass("active");
$("#divs_container #div_"+id[1]).addClass("active");
$("#divs_container div:not(.active)").slideUp();
if($("#divs_container #div_"+id[1]).hasClass("open")){
$("#divs_container #div_"+id[1]).removeClass("open").slideUp();
}
else{
$("#divs_container .open").slideUp().removeClass("open");
$("#divs_container #div_"+id[1]).addClass("open").slideDown();
$('body,html #divs_container #div_"+id[1]').animate({
scrollTop: $("#div_"+id[1]).offset().top
}, 800);
}
});
});
此处的实时代码:http://www.healthfirst.com/dental-waste/Sharps-Recovery-Dental/index.html
有什么建议吗?