コメントに書きましたが、イベントの条件が厳しい、というか滅茶苦茶になってます。
js
1$(function() { //ドキュメント読み込み時のイベント付与
2 $(document).ready(function() { //ドキュメント読み込み時のイベント付与
3 $(window).scroll(function() { //画面スクロールイベント付与
4 var aa = $(this).scrollTop(); //windowのスクロール位置取得
5 if (aa > 0 ) { //windowのスクロール位置判定
6 $('.menu-navi ui li a ').hover(function(){ //.menu-navi ui li aのhoverイベント付与
7 $('this').css('color','#3366FF'); //'this'に対するcss付与(''で囲むと文字列で、.も#もなければ「タグ」に対する指定)
8 },function(){ //.menu-navi ui li aからアウトしたときの処理
9 $('this').css('color',''); //'this'に対するcss付与
10 });
11 };
12 });
13 });
14});
かなりの渋滞具合が分かると思います。
同義のイベントを重ねる意味もあまりありません。
1つ1つのイベントを整理し、きちんと役割を明確にしましょう。
ロジック的にはこうあるべき。
- スクロール時に「現在のポイント」をグローバルに保存
- hover時に「現在のポイント」で判定させる。
未検証で、ちょっと冗長ですが、イメージはこういう感じ。
js
1let point = 0;
2$(window).scroll(function(e) {
3 point = $(e.currentTarget).scrollTop();
4});
5
6$(function() {
7 initNavi();
8
9 $('.menu-navi ui li a ').hover(function(e){
10 initNavi();
11 if (point > 0 ) {
12 $(e.currentTarget).css('color','#3366FF');
13 }
14 });
15});
16
17const initNavi = function(){
18 $('.menu-navi ui li a ').css('color',''); //初期化
19}
20