【发布时间】:2016-07-29 12:56:13
【问题描述】:
我有一个自动滚动功能,有一个静态箭头可以让用户滚动到页面的下一部分。当用户到达“联系人”部分(最后一页)时,我希望隐藏箭头,因为没有其他页面可以向下滚动。
更新 -
目前导航箭头在最后一页消失了,但它也在 about 和 intro 部分也消失了。我该如何解决
Jquery - 更新 v3
$(function() {
$('a.page-scroll').bind('click', function(event) {
var $anchor = $(this);
$('html, body').stop().animate({
scrollTop: $($anchor.attr('href')).offset().top
}, 1500, 'easeInOutExpo');
event.preventDefault();
});
});
function nextSection()
{
var scrollPos = $(document).scrollTop();
$('#section-navigator a').each(function () {
var currLink = $(this);
var refElement = $(currLink.attr("href"));
if (refElement.position().top > scrollPos) {
var $anchor = $(this);
$('html, body').stop().animate({
scrollTop: $($anchor.attr('href')).offset().top
}, 1500, 'easeInOutExpo');
event.preventDefault();
location.hash = "";
location.hash = currLink.attr("href");
if ($($anchor.attr('href')).attr('id') == "contact") {
$("div.page-scroll").hide();
}
return false;
}
});
}
HTML
<div class="page-scroll">
<img class="arrow-down page-scroll-btn" src="img/arrow_dark.png" onclick="nextSection()" />
</div>
谢谢!
【问题讨论】:
-
您是否在控制台上打印了 $($anchor.attr('href')) 值以检查执行是否进入了 'if' 块?如果是,那么 $($anchor.attr('href')) 的价值是多少?去做。因为很可能,您的执行没有进入“if”块并执行“else”块。在else块内添加console.log("else block")之类的语句,看是进入if块还是else块。
-
你应该在括号内使用
if的条件,比如if($($anchor.attr('href')) == "contact") -
mm 如果我放 - if($($anchor.attr('href')) == "contact") { $("a.page-scroll").hide() ;它仍然不起作用......我应该把它放在下一个函数还是第一个函数中
-
这是因为
$anchor什么都没有,因为它在nextSection()之外 -
你能做一个工作演示给我们看吗? jsfiddle.net 是这样做的好地方。
标签: javascript jquery html css