
こちらのページ(http://www.tam-tam.co.jp/tipsnote/javascript/pos …)を参考に、シングルページ上でのカレント表示を実装し、動作も問題ありません。
ただ、contents01の上とcontents04の下にナビゲーションでリンクしていない要素があり、
contents01より上の要素が表示されている間は<a href="#contents01>がカレント表示のまま
contents04より下の要素が表示されている間は<a href="#contents04>がカレント表示のままになってしまいます
// 現在のスクロール位置が、配列に格納した開始位置と終了位置の間にあるものを調べる
の下のifにelse if()でnavLink.removeClass('current');を追加すれば良いかと思うのですが、
()の中へどう記述すれば良いのか困っています
どなたかご助力いただけませんでしょうか
よろしくお願い致します
No.1ベストアンサー
- 回答日時:
こんにちは
ざっと見ただけですが・・・
現在のスクロール量が対象要素のtopとbottom位置の間にあれば、リスト内のそのリンクにcurrentクラスを付けるようになっていますので、それ以外の時はcurrentクラスを付けないようにしてあげれば宜しいかと。
スクリプト中で、該当する要素が存在したら
navLink.removeClass('current');
navLink.eq(i).addClass('current');
として、クラスの付け替えをしていますが、クラス削除の記述をfor文の前に持っていけば、
「まず全体をクリアしておいて」→「該当要素があればクラスを付ける」
という処理手順に変わりますので、結果的に該当要素が無い時はクリアされたままになります。
ただし、全体のロジックが『「要素が見えていたら」ではなく「要素の中までスクロールをしたら」クラスを付与する』というようになっていますので、対象要素が連続していない一番最初のところではなんか違和感があるかも。
(もともとがそのような考え方で作られてはいるのですけれど…)
早々にご回答いただきありがとうございます!大変たすかりました
クラスをまず消しておくという考えにいたらず、なるほど!となりました。
無事解決いたしました。本当にありがとうございました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
どこからも呼ばれていない無意...
-
dllと同じプロジェクトにする方法
-
IPアドレスの3バイト目の呼び方
-
同一パッケージにあるクラスが...
-
JSPからJavaクラスを参照できな...
-
ベクターワークスでの【クラス...
-
プライベートIPの数
-
配列の重複する値とその個数を...
-
eclipeでクラス作成ができない
-
共通で使う関数を集めたクラス...
-
クラスのメンバ関数が多すぎる...
-
コメントからドキュメントにリ...
-
ページ遷移時にアコーディオン...
-
Javaの継承についてです。 この...
-
COMオブジェクトの参照カウント...
-
重複エラーを解決するには
-
java eclipse 型に解決できません
-
IPアドレスのクラスAを取得して...
-
tomcat上でのpropertiesファイ...
-
僕の出身中学校は200人同級生が...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
僕の出身中学校は200人同級生が...
-
今日は こどもの日 で、良い天...
-
どこからも呼ばれていない無意...
-
そんなにお金がなくても年に1度...
-
中学生です。 私は教室の黒板に...
-
恋愛
-
EclipseでJSPのコンパイルエラー
-
java eclipse 型に解決できません
-
共通で使う関数を集めたクラス...
-
main()を持つクラスが2つ以上...
-
同一パッケージにあるクラスが...
-
配列の重複する値とその個数を...
-
「隣の芝生は青く見える」現象...
-
重複エラーを解決するには
-
UMLのクラス図はmain()も含むん...
-
複数のクラスで共通した関数を...
-
VBAもしくはVB6:クラスの中で...
-
命名規約は連番でいいのか?
-
eclipse でクラスに色
-
3年間同じクラスになる確率
おすすめ情報