水平スクロールサイトを作成しています。メニューリンクをクリックするたびに、scrolltoを使用して選択したセクションにスクロールしますが、リンクではなくスクロールを使用してセクションにスクロールすると、ナビゲーションのスタイルが乱れます。問題は、scrollイベントにコードがあり、scrolltoがscrollイベントを発生させることだと思います¿
私が達成したいのは、次の場合にナビゲーションメニューで現在のリンクを強調表示することです:1)クリックする2)ブラウザのスクロールバーでセクションに手動でスクロールする3)次/前のリンクをクリックする
たぶん問題はこの部分にあります:
var position = Math.abs( $('#slider ul').offset().left - 138 );
$('p.status').html( 'index:' + getCurrentSectionIndex(position) );
//disable the scroll event so it doesn't broke the flow
$('#slider').unbind('scroll',handler);
//scrolls to the selected section
$('#slider').scrollTo($('#' + $(this).attr('class')), 800, { axis: 'x' });
//enable again the scroll event
//$('#slider').bind('scroll',handler);
var timeout = setTimeout(function() {
$('#slider').bind('scroll',handler);
}, 3000);
私はjqueryを初めて使用するので、改善できることがあれば教えてください。アドバイスを歓迎します:)
これをうまく説明したかどうかわからないので、これはコードjsfiddleです
この質問のコードの一部を使用しています