■前提・実現したいこと
ある特定のクラス(.anime-item)に別のクラス(.addAnime)を追加するタイミングを条件分岐させたいです。
▼はじめの分岐:そのクラスが画面内にあるかどうか
(ある場合):クラスを追加(.addAnime)
(ない場合)→次の分岐
▼2番目の分岐:画面内に入ってきた特定のタイミングでクラスを追加(.addAnime)
該当のソースコード
jQuery
1$(function() { 2 $('.anime-item').each(function() { 3 var itemPos = $(this).offset().top; 4 var scTop = $(window).scrollTop(); 5 var winH = $(window).height(); 6 var itemDis = itemPos - scTop; 7 var split = 35; 8 9 if ( 0 <= itemDis && itemDis <= winH ) { 10 $(this).addClass('addAnime'); 11 } else { 12 $(window).scroll(function () { 13 var scTop = $(window).scrollTop(); 14 15 if (scTop > itemPos - winH + winH/split) { 16 $(this).addClass('addAnime2'); //本当は同じaddAnimeを追加したい 17 } 18 }); 19 } 20 }); 21});
### ■つまづいてるところ
eachの中に、$(window).scroll(function () {});をいれて、更にif分岐をさせたら
うまく機能してないようで、addClass2の方が追加されませんでした。(else以降が機能していない?)
ちなみに、上記のコードでは、はじめの分岐とあとの違うタイミングでクラスが追加されていることがわかるように、
addAnime2としていますが、最終的には一つのクラスで管理したいと考えています。
### ■補足
jQuery自体を使う際は、普段ほとんどコピーが多く実際書いて使う機会があまりないのですが、
実現したいことがあり調べながら試してみたのですが、つまづいています。
宜しくお願いします。
回答1件
あなたの回答
tips
プレビュー