スクロール中に特定のdivをホバリングするように開始位置と終了位置が固定されているdivを検出する方法を見つけるのには苦労しています。固定位置のdivが別の要素と交差するときの検出
私はdivを常に固定し、自分のウィンドウの中央に配置しました。私は自分のページをスクロールしている間、固定されたdivが他のものをホバリングし始めたら、その色を変更し、ホバリングが終了したら色を取り除きたいと思います。私は自分の問題を説明するために小さなスキーマを付けました。
ページが読み込まれるときの固定divは、黒色になります。> 2番目のdivに移動し始めます。色は白に戻ります。> 2番目のdivに移動するにはFinishをクリックします。
私はこの問題を発見した:Detect when a position: fixed; element crosses over another element
div要素が第二1を横切るように起動したときにそれは動作しますが、それはホバーが終了する色をリセットしません。私のコード:
$(window).scroll(function() {
if ($('div.fixed').offset().top < ($(".div-to-cross").offset().top - 0)) {
$('div.fixed').removeClass('white');
} else {
$('div.fixed').addClass('white');
}
});
ご協力いただきありがとうございます。あなたはアカウントでdivの高さを取らなければならない
はそれが魔法のように動作し、ありがとうございました! しかし、固定divにはこのセクションがなく、JavaScriptの残りの部分がクラッシュするため、色を切り替えるにはトリックは必要ありません。この紛争をどのように解決できるかご存じですか? –
私は解決策を見つけたと思いますが、関数全体をIF文に含めます: 'if($( 'div-to-cross')。length){Do something}' –
はい...それは方法です。 'div-to-cross'要素がないかどうか確かめてください...問題があるかもしれません。あなたのIFステートメントは機能するはずです。 –