質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

1回答

3239閲覧

両サイドに縦のナビゲーションをカレント表示させたいです

wataneko17

総合スコア1

CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2020/10/25 04:57

HTML等で初めてサイトを制作している者です。
縦書きのナビゲーションを画面の両サイドに配置し、スクロールした際に現在地を示すカレント表示をさせていと思っています。
カレント表示は下記の画像のように現在地を赤文字で表示したいと思っております。
イメージ説明

問題点
下記のようなコードを記述したのですが、左のナビゲーションがカレント表示されないことに悩んでおります。
(右のナビゲーションは理想通り機能しています。)
こちら解決策などございましたら、ご教授お願い致します。

Html

1 <div class="side side-right"> 2 <nav class="side-nav"> 3 <ul class="side-nav-list"> 4 <li class="top-of-side"><a href="#top" id="top_link_js">top</a></li><!--非表示---> 5 <li><a href="#about" id="about_link_js">About</a></li> 6 <li><a href="#menu" id="menu_link_js">Menu</a></li> 7 <li><a href="#access" id="access_link_js">Access</a></li> 8 <li><a href="#contact" id="contact_link_js">Contact</a></li> 9 </ul> 10 </nav> 11 </div> 12 13 14 <div class="side side-left"> 15 <nav class="side-nav"> 16 <ul class="side-nav-list"> 17 <li class="top-of-side"><a href="#top" id="top_link_js">top</a></li><!--非表示---> 18 <li><a href="#about" id="about_link_js">About</a></li> 19 <li><a href="#menu" id="menu_link_js">Menu</a></li> 20 <li><a href="#access" id="access_link_js">Access</a></li> 21 <li><a href="#contact" id="contact_link_js">Contact</a></li> 22 </ul> 23 </nav> 24 </div> 25 26 27 28 29   <script> 30 $(function() { 31 var set = 200; //ウインドウ上部からどれぐらいの位置で変化させるか 32 var boxTop = new Array; 33 var current = -1; 34 //各要素の位置 35 //position-nowは場所を取得したい対象の要素に付ける 36 $('.position-now').each(function(i) { 37 boxTop[i] = $(this).offset().top; 38 }); 39 //最初の要素にclass="positiion-now"をつける 40 changeBox(0); 41 //スクロールした時の処理 42 $(window).scroll(function() { 43 scrollPosition = $(window).scrollTop(); 44 for (var i = boxTop.length - 1; i >= 0; i--) { 45 if ($(window).scrollTop() > boxTop[i] - set) { 46 changeBox(i); 47 break; 48 } 49 }; 50 }); 51 //ナビの処理 52 function changeBox(secNum) { 53 if (secNum != current) { 54 current = secNum; 55 secNum2 = secNum + 1; //以下にクラス付与したい要素名と付与したいクラス名 56 $('.side-nav li a').removeClass('link-current'); 57 58 //位置によって個別に処理をしたい場合  59 if (current == 0) { 60 $('#top_link_js').addClass('link-current'); 61 // 現在地がsection1の場合の処理 62 } else if (current == 1) { 63 $('#about_link_js').addClass('link-current'); 64 // 現在地がsection1の場合の処理 65 } else if (current == 2) { 66 $('#menu_link_js').addClass('link-current'); 67 // 現在地がsection2の場合の処理 68 } else if (current == 3) { 69 // 現在地がsection3の場合の処理 70 $('#access_link_js').addClass('link-current'); 71 } else if (current == 4) { 72 // 現在地がsection4の場合の処理 73 $('#contact_link_js').addClass('link-current'); 74 } 75 }; 76 }); 77 $(function() { 78 $('a[href^="#"]').click(function() { 79 var adjust = -20; 80 var speed = 500; 81 var href = $(this).attr("href"); 82 var target = $(href == "#" || href == "" ? 'html' : href); 83 var position = target.offset().top + adjust; 84 $("html, body").animate({ 85 scrollTop: position 86 }, speed, "swing"); 87 return false; 88 }); 89 }); 90 </script> 91 92 93 <!---コンテンツ---> 94 <div class="about position-now" id="about"> 95 <p>about</p> 96 </div> 97 <div class="menu position-now" id="menu"> 98 <p>Menu</p> 99 </div> 100 <div class="access position-now" id="access"> 101 <p>Access</p> 102 </div> 103 <div class="contact position-now" id="contact"> 104 <p>Contact</p> 105 </div> 106 107 108

css

1/*---サイドナビゲーション---*/ 2.side-right { 3 position: fixed; /* 画面に固定して追従させます */ 4 top: 20vh; /* 表示画面の上から20%のところから表示を始めます */ 5 right:0; /* 固定位置は右側 */ 6 z-index:1; /* 他の要素より前に出します */ 7 margin: auto 10px; 8} 9 10 11.side-left { 12 position: fixed; /* 画面に固定して追従させます */ 13 top: 20vh; /* 表示画面の上から20%のところから表示を始めます */ 14 left:0; /* 固定位置は右側 */ 15 z-index:1; /* 他の要素より前に出します */ 16 margin: auto 10px; 17 transform: rotateZ(180deg); 18} 19 20 21.side li{ 22 font-size: 15px; 23 font-weight: 400; 24 margin: 15px 0; 25 margin-right: 50px; 26} 27 28.top-of-side{ 29 display: none; 30} 31 32.side-right li a{ 33 -webkit-writing-mode: vertical-rl; /* Chrome,Safari対応*/ 34 -ms-writing-mode: tb-rl; /* IE対応*/ 35 writing-mode: vertical-rl; 36} 37 38.side-left li a{ 39 -webkit-writing-mode: vertical-rl; /* Chrome,Safari対応*/ 40 -ms-writing-mode: tb-rl; /* IE対応*/ 41 writing-mode: vertical-rl; 42} 43 44.side li a:hover { 45 color:#d7113d; 46} 47 48 49.link-current { 50 color:#d7113d; 51} 52/*---サイドナビゲーションここまで---*/

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

閲覧してくださった方、ありがとうございました。
HTML内の<script>を左用で追加し、id等も「about_left_link_js」などにしたところ、
イメージどおりの形になり解決することができました。

投稿2020/10/26 01:57

wataneko17

総合スコア1

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問