前提・実現したいこと
下記2つのプログラムにて、
①アクセス時とスクロール時にadd_class_in_scrolling()を実行し、画面内に指定要素がある場合はclassを付与
②画面スクロール時にnav要素にfixedクラスを付与し、メニューバーを上部に固定
の機能を実装しています。
それぞれ個別だと問題なく動くのですが、
同じjsファイル内に置いた時に下記エラーが発生し、
②の機能が動作しなくなります。
解決方法をご教授いただけますと幸いです。
発生している問題・エラーメッセージ
Uncaught TypeError: Cannot read property 'top' of undefined at add_class_in_scrolling
該当のソースコード①
JavaScript
1 $(window).on('load scroll', function () { 2 add_class_in_scrolling($('.hoge')); 3 }); 4 function add_class_in_scrolling(target) { 5 var winScroll = $(window).scrollTop(); 6 var winHeight = $(window).height(); 7 var scrollPos = winScroll + winHeight; 8 if (target.offset().top < scrollPos) { 9 target.addClass('hogehoge'); 10 } else { 11 ; 12 } 13 };
該当のソースコード②
JavaScript
1 $(function () { 2 var offset = $('.nav').offset(); 3 4 $(window).scroll(function () { 5 if ($(window).scrollTop() > offset.top) { 6 $('.nav').addClass('fixed'); 7 } else { 8 $('.nav').removeClass('fixed'); 9 } 10 }); 11 });
回答2件
あなたの回答
tips
プレビュー