2016-06-14 13 views
0

私は1ページのデザインウェブサイトを構築しています。IDをスクロールするとナビゲーションメニュー項目にクラスを追加する方法を知りたいと思います。ナビゲーションメニューにIDの追加クラスをスクロールしてカレイドクラスを変更する

私はそれはようなものになるだろう推測している:私は(リンクwww.example.com/#pricesある)物価へのリンクを持っている私のナビゲーションメニューで

if at ID-X addClass .active to menuitem-y 

。それで、[価格]をクリックすると、スムーズにID #pricesにスクロールします。

if "#prices" addClass(.active)->Menuitem-y 

私が推測:

だから、インクルードは次のようになりますでしょうか?

**アップデート** DaniPのおかげで、#pricesに達すると警告を発するコードがあります。

var target = $("#prices").offset().top; 
var interval = setInterval(function() { 
    if ($(window).scrollTop() >= target) { 
     alert("made it!"); 
     clearInterval(interval); 
    } 
}, 250); 

アラートの代わりにCSSを挿入できますか? like #menuitem-y{color:#000;}

これは1つのインスタンスに対してのみ機能しますが、これをより多くのメニュー項目に適用するにはどうすればよいですか?

+0

あなたはBootstrap scrollspyを試しましたか? http://getbootstrap.com/javascript/#scrollspy –

+0

私はブートストラップを使用していません。私はhttp://materializecss.comを使用しています。それはscrollspy機能を持っています。 http://materializecss.com/scrollspy.htmlこれはおそらく同じように動作します。病気に行く – Steggie

+1

何か試しましたか?少なくともあなたのコードを検索してみてくださいhttp://stackoverflow.com/questions/7182342/how-to-detect-when-the-user-has-scrolled-to-a-certain-area-on-the-page-あなたのタイトルに – DaniP

答えて

1

jqueryプラグインは、ここでやっているように動作するように思えます。

https://github.com/tferullo/eavesdrop

それはビュー内の要素に対応するように、それは、ナビゲーション要素にクラスを追加します。お役に立てれば!

+0

編集、申し訳ありませんが、サンプルフォルダが表示されませんでした!ありがとう! – Steggie

+0

このスクリプトは私が欲しいことをしてくれてありがとう。しかし、今私は自分のコードでそれを実装する必要があります。 スクリプトにエラーが見つかりました。ダウンロードしたファイルには、 ';がありますが、これはデモページに応じて'!function'にする必要があります。 – Steggie

+0

うれしいです。関数呼び出しの前のセミコロンは、連結されたスクリプトやその他のプラグインに対するセーフティネットです。これらのプラグインは正しく閉じられません。 – tfer77

関連する問題