我有一个单页网站,我使用以下代码在页面之间滚动:
function gotoPage() {
var cur = $(this);
var role = cur.attr('role');
var target = $('#' + role);
$('html,body').animate({
scrollTop: target.offset().top - 94
}, 1000);
}
$('.navBt').click(gotoPage);
HTML:
<div class="navBt" role="topSpacing">
<img src="img/nav_campaign.png" />
</div>
<div class="navBt" role="sectionD">
<img src="img/nav_club.png" />
</div>
它可以在除IE之外的任何浏览器上完美运行。 当我在IE9上打开它(不确定其他版本)它不会工作,但是一旦我按F12打开检查,它将从那一点开始正常工作,即使我刷新页面或再次进入页面而没有检查打开。
任何想法为什么?
答案 0 :(得分:1)
这听起来非常像我很久以前的一个问题(仅限IE):
你在javascript代码中的某个地方使用console
吗?最有可能是console.log()
?
然后您遇到了问题,因为在IE浏览器上,console
javascript对象在您打开开发控制台之前不存在。因此会出现一些javascript错误(您无法看到导致您的控制台未打开),这会导致其他javascript代码的执行停止。
这是我找到的解决方法:
if (!window.console) window.console = {};
if (!window.console.log) window.console.log = function () { };
将它放在您的javascript代码的顶部。
这将创建一个伪console
对象和伪方法log
,因此在console
关闭时不会出现错误。