Javascript 页面加载后的第一个锚定链接需要单击两次
我正在设计的页面底部有一个固定的位置栏,用于引用,它从页面加载开始,高度为零,但可以通过单击直接位于其顶部的div向上展开。此外,单个引用是指向内容块中链接的锚定,我使用scrollTo和localScroll jQuery插件进行导航-如果在扩展引用栏时单击锚定链接,它将在本地滚动到它,如果减少引用栏,它将滚动到它,然后调用扩展动画。脚本的第一部分处理了所有这一切,效果很好——点击定位的div即可打开参考栏——但是页面加载后单击的第一个锚定链接,无论参考栏是关闭还是打开,都需要两次单击,而不是一次单击来完成任何操作。以下是脚本:Javascript 页面加载后的第一个锚定链接需要单击两次,javascript,jquery,jquery-animate,scrollto,Javascript,Jquery,Jquery Animate,Scrollto,我正在设计的页面底部有一个固定的位置栏,用于引用,它从页面加载开始,高度为零,但可以通过单击直接位于其顶部的div向上展开。此外,单个引用是指向内容块中链接的锚定,我使用scrollTo和localScroll jQuery插件进行导航-如果在扩展引用栏时单击锚定链接,它将在本地滚动到它,如果减少引用栏,它将滚动到它,然后调用扩展动画。脚本的第一部分处理了所有这一切,效果很好——点击定位的div即可打开参考栏——但是页面加载后单击的第一个锚定链接,无论参考栏是关闭还是打开,都需要两次单击,而不是
$(document).ready(function() {
$("#reftag").css('bottom', '0px');
$("#refblock").css('height','opx');
$("refblock").scrollTo($("#refblock h4"),0);
$("#reftag").click(
function(){
var offset = $("#refblock").offset();
if(($(document).scrollTop()+$(window).height() - offset.top) > 100)
{
$("#reftag").animate({bottom: "0px"}, {queue:false, duration: 1700, easing: 'easeOutBounce'})
$("#refblock").animate({height:"0px"},{queue:false, duration: 1700, easing: 'easeOutBounce'})
$("#refblock").scrollTo($("#refblock h4"),0);
}
else
{
$("#reftag").animate({bottom: "200px"}, {queue:false, duration: 1700, easing: 'easeOutBounce'})
$("#refblock").animate({height:"200px"},{queue:false, duration: 1700, easing: 'easeOutBounce'})
}
return false;
});
$("a.ref").click(
function () {
var offset = $("#refblock").offset();
if(($(document).scrollTop()+$(window).height() - offset.top) > 100)
{
$('#textblock').localScroll({target:'#refblock'});
}
else{
$('#textblock').localScroll({target:'#refblock',onAfter:function(){
$("#reftag").animate({bottom: "200px"}, {queue:false, duration: 1700, easing: 'easeOutBounce'})
$("#refblock").animate({height:"200px"}, {queue:false, duration: 1700, easing: 'easeOutBounce'})
}});
}
return false;
});
});
下面是refblock的CSS(如果它有任何值):
有什么想法吗?这是脚本的问题还是其他问题?当网站上线时,我会发布一个链接到该网站,如果有其他有用的答案,请告诉我 尝试防止单击
a.ref
链接触发默认操作:
$("a.ref").click(function (e) {
e.preventDefault();
}
代码中是否有一个特定的地方需要这样做?我修改了函数(首先将e.preventDefault()放在花括号内),得到了相同的结果。
$("a.ref").click(function (e) {
e.preventDefault();
}