
こちらのページ(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ランキング
-
重複エラーを解決するには
-
アプリケーションについて
-
複数のクラスで共通した関数を...
-
VBAもしくはVB6:クラスの中で...
-
dllと同じプロジェクトにする方法
-
java eclipse 型に解決できません
-
IPアドレスのクラスAを取得して...
-
SQLです教えてくださいお願いし...
-
java swing JLabelの型とは?
-
HIDデバイスクラスの実装
-
UMLのクラス図はmain()も含むん...
-
EclipseでJSPのコンパイルエラー
-
共通で使う関数を集めたクラス...
-
回答者のBA率に応じてクラスを...
-
string formatについて
-
そんなにお金がなくても年に1度...
-
エクセルVBAでのwitheventsにつ...
-
僕の出身中学校は200人同級生が...
-
VB.NETでCreateProcess
-
main()を持つクラスが2つ以上...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
同じクラスにならない確率を教...
-
そんなにお金がなくても年に1度...
-
河合塾のクラス分けについて
-
今回のクラス替え最悪でした、...
-
3年間同じクラスになる確率
-
java eclipse 型に解決できません
-
恋愛
-
同一パッケージにあるクラスが...
-
小学4年の頃、好きな同級生にス...
-
配列の重複する値とその個数を...
-
main()を持つクラスが2つ以上...
-
EclipseでJSPのコンパイルエラー
-
共通で使う関数を集めたクラス...
-
他クラスのすごくかっこいい同...
-
どこからも呼ばれていない無意...
-
中学生です。 私は教室の黒板に...
-
ネスカフェ エクセラ と UCCク...
-
dllと同じプロジェクトにする方法
-
「隣の芝生は青く見える」現象...
-
コンボボックスのマウスホイー...
おすすめ情報