这是目前的工作,在大多数情况下:
$(".nextproject").click(function() {
$(window).scrollTo(
$(this)
.parents()
.nextAll()
.find("li:visible:first"),
1000,
{easing:'easeOutExpo', axis:'x', offset:-75 }
);
});
你可以在这里看到demo:http://www.studioimbrue.com/index2.php
整个过程都很顺利。当您单击底部的过滤器时,它仍然起作用并跳过隐藏的div。一旦你到达最后,就在#about div之前,它不会继续下去,我不知道为什么它不会。
编辑:我将div元素改为li元素。仍然不能正常工作;它会到达列表的最后一个,不会再前进。这完全说不通
1条答案
按热度按时间i1icjdpr1#
您需要稍微调整一下,使用
.nextAll()
调用中的选择器,如下所示:你的HTML是这样的:
你想找到下一个
<li>
,它是.nextproject
的父元素的兄弟元素(而不是下一个<li>
元素的 * 子元素 *)......它碰巧在除了最后一个部分之外的所有部分都有效,因为他们有<ul>
,里面有<li>
元素(右边的图像)。最后一个“about”部分没有任何<li>
子项,之前右边的第一个小图像是它滚动到的内容,而不是实际的部分......所以它在最后没有工作:)现在我想起来了,有没有可能你把
.find()
和.filter()
弄混了?.filter()
也可以......但是由于.nextAll()
需要一个选择器,所以在这种情况下没有必要。