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

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

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

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

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

Q&A

解決済

1回答

4391閲覧

URLにアンカーリンクを付加させない

nakajima4

総合スコア11

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

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

0グッド

0クリップ

投稿2019/08/27 09:13

編集2019/08/28 03:26

idでページリンクさせた場合にURLの末尾に#tab1とついてしまうのですが、URLにアンカーリンクを付加させないでtest.htmlのみにしたく考えています。
URLにアンカーリンクを付加させないで目的の場所へ移動させたいです。

indexhtml

1<div class="flex"> 2 <div> 3 <div><a class="icon1" href="test.html/#tab1"><img src="" alt=""></a></div> 4 <p><a class="icon1" href="test.html/#tab1">テスト1</a></p> 5 </div> 6 <div> 7 <div><a class="icon2" href="test.html/#tab2"><img src="" alt=""></a></div> 8 <p><a class="icon2" href="test.html/#tab2">テスト2</a></p> 9 </div> 10 <div> 11 <div><a class="icon3" href="test.html/#tab3"><img src="" alt=""></a></div> 12 <p><a class="icon3" href="test.html/#tab3">テスト3</a></p> 13 </div> 14 <div> 15 <div><a class="icon4" href="test.html/#tab4"><img src="" alt=""></a></div> 16 <p><a class="icon4" href="test.html/#tab4">テスト4</a></p> 17 </div> 18 <div> 19 <div><a class="icon5" href="test.html/#tab5"><img src="" alt=""></a></div> 20 <p><a class="icon5" href="test.html/#tab5">テスト5</a></p> 21 </div> 22 <div> 23 <div><a class="icon6" href="test.html/#tab6"><img src="" alt=""></a></div> 24 <p><a class="icon6" href="test.html/#tab6">テスト6</a></p> 25 </div> 26 <div> 27 <div><a class="icon7" href="test.html/#tab7"><img src="" alt=""></a></div> 28 <p><a class="icon7" href="test.html/#tab7">テスト7</a></p> 29 </div> 30 </div>

testhtml

1<p class="page-15-p">ダミーテキスト</p> 2<!--タブ--> 3<ul class="tab-group" id="group-top"> 4 <li id="tab1" class="tab is-active">テスト1</li> 5 <li id="tab2" class="tab">テスト2</li> 6 <li id="tab3" class="tab">テスト3</li> 7 <li id="tab4" class="tab">テスト4</li> 8 <li id="tab5" class="tab">テスト5</li> 9 <li id="tab6" class="tab">テスト6</li> 10 <li id="tab7" class="tab">テスト7</li> 11</ul> 12 13<!--タブを切り替えて表示するコンテンツ--> 14<div class="panel-group"> 15 <div class="panel is-show"> 16 </div> 17 <div class="panel"> 18 </div> 19 <div class="panel"> 20 </div> 21 <div class="panel"> 22 </div> 23 <div class="panel"> 24 </div> 25 <div class="panel"> 26 </div> 27 <div class="panel"> 28 </div> 29</div>

css

1.tab{ 2 flex-grow: 1; 3 list-style:none; 4 text-align:center; 5 cursor:pointer; 6 width:calc(100% / 7); 7 height:80px; 8 font-size:0.6em; 9 position:relative; 10 padding-top:70px; 11 color:#ccc; 12 box-sizing:border-box; 13} 14.tab:hover{ 15 color:#000; 16} 17.tab:before{ 18 content:""; 19 position:absolute; 20 left:50%; 21 top:10%; 22 transform: translateX(-50%); 23 -webkit-transform: translateX(-50%); 24 display:inline-block; 25 width:5em; 26 height:5em; 27 background:url() no-repeat; 28 background-size:contain; 29}

js

1 <script type="text/javascript"> 2//タブ操作 3jQuery(function($){ 4 var target = $('.page-15-p'); 5 var position = target.offset().top; 6 $('.tab').click(function(){ 7 $('.is-active').removeClass('is-active'); 8 $(this).addClass('is-active'); 9 $('.is-show').removeClass('is-show'); 10 // クリックしたタブからインデックス番号を取得 11 const index = $(this).index(); 12 // クリックしたタブと同じインデックス番号をもつコンテンツを表示 13 $('.panel').eq(index).addClass('is-show'); 14 }); 15 $('.tab1').click(function(){ 16 $('.is-active').removeClass('is-active'); 17 $('#tab1').addClass('is-active'); 18 $('#tab1').addClass('is-show'); 19 $('body,html').stop().animate({scrollTop:position}, 500); 20 }); 21 $('.tab2').click(function(){ 22 $('.is-active').removeClass('is-active'); 23 $('#tab2').addClass('is-active'); 24 $('#tab2').addClass('is-show'); 25 $('body,html').stop().animate({scrollTop:position}, 500); 26 }); 27 $('.tab3').click(function(){ 28 $('.is-active').removeClass('is-active'); 29 $('#tab3').addClass('is-active'); 30 $('#tab3').addClass('is-show'); 31 $('body,html').stop().animate({scrollTop:position}, 500); 32 }); 33 $('.tab4').click(function(){ 34 $('.is-active').removeClass('is-active'); 35 $('#tab4').addClass('is-active'); 36 $('#tab4').addClass('is-show'); 37 $('body,html').stop().animate({scrollTop:position}, 500); 38 }); 39 $('.tab5').click(function(){ 40 $('.is-active').removeClass('is-active'); 41 $('#tab5').addClass('is-active'); 42 $('#tab5').addClass('is-show'); 43 $('body,html').stop().animate({scrollTop:position}, 500); 44 }); 45 $('.tab6').click(function(){ 46 $('.is-active').removeClass('is-active'); 47 $('#tab6').addClass('is-active'); 48 $('#tab6').addClass('is-show'); 49 $('body,html').stop().animate({scrollTop:position}, 500); 50 }); 51 $('.tab7').click(function(){ 52 $('.is-active').removeClass('is-active'); 53 $('#tab7').addClass('is-active'); 54 $('#tab7').addClass('is-show'); 55 $('body,html').stop().animate({scrollTop:position}, 500); 56 return false; 57 }); 58}); 59</script> 60 <script type="text/javascript"> 61//タブ内から別タブへのページ内リンク 62jQuery(function($){ 63 $('.anchor').click(function(){ 64 $('.tab:first-child').removeClass('is-active'); 65 $('.tab:nth-child(3)').addClass('is-active'); 66 $('.is-show').removeClass('is-show'); 67 $('.panel:nth-child(3)').addClass('is-show'); 68 var target = $('#page-link1'); 69 var position = target.offset().top; 70 $('body,html').stop().animate({scrollTop:position}, 500); 71 return false; 72 }); 73}); 74</script> 75 <script> 76// タブへのダイレクトリンク 77 jQuery(function($){ 78 $(function() { 79 //#以下を取得 80 var hash = location.hash ; 81 //[#tab~]であるか確認 82 hash = (hash.match(/^#tab\d+$/) || [])[0]; 83 84 if($(hash).length){ 85 //[#tab~]である場合、#より後を取得 86 var tabname = hash.slice(7); 87 var tabbar = tabname - 1; 88 } 89 $(function() { 90 $('.is-active').removeClass('is-active'); 91 $(hash).addClass('is-active'); 92 $('.is-show').removeClass('is-show'); 93 // クリックしたタブからインデックス番号を取得 94 const index = $(hash).index(); 95 // クリックしたタブと同じインデックス番号をもつコンテンツを表示 96 $('.panel').eq(index).addClass('is-show'); 97 }); 98 } ); 99 }); 100 </script> 101 <script> 102 jQuery(function($){ 103$(document).ready(function(){ 104 //URLのハッシュ値を取得 105 var urlHash = location.hash; 106 //ハッシュ値があればページ内スクロール 107 if(urlHash) { 108 //スクロールを0に戻す 109 $('body,html').stop().scrollTop(0); 110 setTimeout(function () { 111 //ロード時の処理を待ち、時間差でスクロール実行 112 scrollToAnker(urlHash) ; 113 }, 100); 114 } 115 116 //通常のクリック時 117 $('.icon1,.icon2,.icon3,.icon4,.icon5,.icon6,.icon7').click(function() { 118 //ページ内リンク先を取得 119 var href= $(this).attr("href"); 120 //リンク先が#か空だったらhtmlに 121 var hash = href == "#" || href == "" ? 'html' : href; 122 //スクロール実行 123 scrollToAnker(hash); 124 //リンク無効化 125 return false; 126 }); 127 128 // 関数:スムーススクロール 129 // 指定したアンカー(#ID)へアニメーションでスクロール 130 function scrollToAnker(hash) { 131 var target = $('.page-15-p'); 132 var position = target.offset().top; 133 $('body,html').stop().animate({scrollTop:position}, 500); 134 } 135}) 136 }); 137 </script> 138 <script> 139 jQuery(function($){ 140 // liのうち、href属性が指定されているものを取得 141$('li[href]').click(function(){ 142 let href = $(this).attr('href'); 143 location.href = href; 144 // window.open(href); 145}); 146 }); 147 </script>

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

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

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

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

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

nakajima4

2019/08/28 03:29

参考になる資料を教えていただいてありがとうございます。 スクロールする方法で位置の調整は解決したのですが、return falseが効いていないのか、URLに#がついてしまいました。
guest

回答1

0

ベストアンサー

JavaScript

1 $('.icon1,.icon2,.icon3,.icon4,.icon5,.icon6,.icon7').click(function() { 2 //ページ内リンク先を取得 3 var href= $(this).attr("href"); 4 //リンク先が#か空だったらhtmlに 5 var hash = href == "#" || href == "" ? 'html' : href; 6 //スクロール実行 7 scrollToAnker(hash); 8 //リンク無効化 9 return false; 10 });

<a>リンクにマークアップするものです。
return false; でリンク機能を無効化するなら、それはリンクではないので、<a> でマークアップするのを止めましょう。
そうすれば、URL に #tab1 が付与されることはなくなります。

Re: nakajima4 さん

投稿2019/08/28 03:56

編集2019/08/28 10:00
think49

総合スコア18162

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問