[英]JavaScript works in Chrome not in Firefox
我有一个可在Chrome(41.0.2272.89)中工作的导航栏,但不能在Firefox(36.0.1)中工作。
HTML
<div class="collapse navbar-collapse" id="navbar">
<ul class="nav navbar-nav">
<li class="active"><a class="navBtn" onclick="scrollTo(home)" title="#home">Home</a></li>
<li><a class="navBtn" onclick="scrollTo(about)" title="#about">About</a></li>
<li><a class="navBtn" onclick="scrollTo(clients)" title="#clients">Clients</a></li>
<li><a class="navBtn" onclick="scrollTo(portfolio)" title="#portfolio">Portfolio</a></li>
<li><a class="navBtn" onclick="scrollTo(contact)" title="#contact">Contact</a></li>
</ul>
</div><!-- /.navbar-collapse -->
使用一个简单的onclick,它将激活我的JS
JS
function scrollTo(element) {
if(element == document.getElementById('home')) {
$('html, body').animate({
scrollTop: $(element).offset().top - 54
}, 500);
} else {
$('html, body').animate({
scrollTop: $(element).offset().top - 53
}, 500);
}}
看来JS可以在Chrome中激活,但不能在Firefox中激活。
应该发生的是,当您单击一个项目时,网站将向下滚动到该项目。 这曾经可以正常工作,但是现在突然之间可以再工作了。
这里的例子
由于其自己的Window.scrollTo()函数,scrollTo必须为保留字。
function moveTo(element) {
if(element == document.getElementById("home")) {
$("html, body").animate({
scrollTop: $(element).offset().top - 54
}, 500);
} else {
$("html, body").animate({
scrollTop: $(element).offset().top - 53
}, 500);
}}
因此,更改函数名称将返回正常功能。
在我看来,您的onclick定义有问题。
代替:
<li><a class="navBtn" onclick="scrollTo(about)" title="#about">About</a></li>
尝试在DIV名称周围使用单引号,例如:
<li><a class="navBtn" onclick="scrollTo('about')" title="#about">About</a></li>
这也将需要对功能代码进行一些调整,以处理传递DIV的名称而不是对象的名称。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.