【发布时间】:2013-03-17 18:27:30
【问题描述】:
此功能使用动画从导航滚动到#id,并将其着色为 bg-color 颜色几秒钟。
这是我用来从导航向下滚动到页面上使用的内容的功能,方法是在锚标记中使用 id <h1 id="#someid"> 和 href="#someid" 属性。该功能工作正常,但是,它在加载页面后第一次单击时不起作用。知道如何解决它以及导致它的原因吗?
//EXTERNAL JAVASCRIPT
function link(){
$('a[href^="#"]').click(function() {
var target = $(this.hash);
if (target.length == 0) target = $('a[name="' + this.hash.substr(1) + '"]');
if (target.length == 0) target = $('html');
$('html, body').animate({ scrollTop: target.offset().top }, 100);
target[0].style.backgroundColor = 'red';
setTimeout(function(){
target[0].style.backgroundColor = 'dodgerBlue';
}, 8000);
return false;
});
}
这是我的 HTML,我只是通过将锚点 onclick 属性链接到我的函数的 link(); 来覆盖它,您可以在此文本上方看到它。
//HTML
<li class="sub-menu-element"><a href="#DERMATOLOG" onclick="javascript:link()">DERMATOLOG</a></li>
有什么想法吗? 非常感谢您提前提供的帮助。
【问题讨论】:
-
一个小提示:你给
if (target.length == 0)打了两次电话。
标签: javascript jquery html