1

ほとんどの場合、これは現在機能しています。

$(".nextproject").click(function() {
    $(window).scrollTo(
        $(this)
        .parents()
        .nextAll()
        .find("li:visible:first"),
        1000,
        {easing:'easeOutExpo', axis:'x', offset:-75 }
    );
});

ここでデモを見ることができます: http://www.studioimbrue.com/index2.php

それは全体を通してうまく機能します。下部のフィルターをクリックすると、引き続き機能し、非表示の div がスキップされます。最後に到達すると、#about div の直前で続行しません。なぜ続行しないのかわかりません。

編集: div 要素を li 要素に変更しました。まだ正常に動作していません。リストの最後の 1 つに到達し、それ以上進みません。これはまったく意味がありません。

4

1 に答える 1

3

.nextAll()次のように、呼び出しでセレクターを使用して、わずかな調整が必要です。

$(".nextproject").click(function() {
    $(window).scrollTo(
        $(this)
        .parents()
        .nextAll("li:visible:first"),
        1000,
        {easing:'easeOutExpo', axis:'x', offset:-75 }
    );
});

あなたのHTMLは次のようになっているので:

<li class="container photography_cat" style="">
  <!-- Other stuff.... -->
  <div class="nextproject"></div>
</li>

の親の<li>兄弟である次のものを見つけたい( である次の要素のではない) ... たまたま最後のセクション以外のすべてで機能した権利)。最後の「about」セクションには子がありません。以前は、右側の最初の小さな画像が実際のセクションではなく、スクロール先でした...そのため、最後に機能しませんでした :).nextproject<li><ul><li><li>

今考えると、あなたが混乱.find()していた可能性はあり.filter()ますか? .filter()同様に機能します...しかし.nextAll()、セレクターを使用するため、この場合は必要ありません。

于 2010-06-24T00:54:11.010 に答える