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

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

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

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

HTML

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

Q&A

1回答

1892閲覧

ページ内スクロールで#を使わない方法

funachan

総合スコア5

JavaScript

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

HTML

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

0グッド

0クリップ

投稿2020/01/16 06:41

編集2020/01/16 08:10

前提・実現したいこと

ページ内スクロールで#(アンカー)を使わない方法はないでしょうか。
#(アンカー)をタブの切り替えで使用した場合、
タブの切り替わりと同時にスクロールも動いてしまいます。
タブの切り替えでは#(アンカー)を使用したいです。
何か良い方法がありましたらお教え下さい。

発生している問題・エラーメッセージ

エラーメッセージ

該当のソースコード

<JS> $(function(){ $('a[href^=#]').click(function() { var speed = 400; var href= $(this).attr("href"); var target = $(href == "#" || href == "" ? 'html' : href); var position = target.offset().top; $('body,html').animate({scrollTop:position}, speed, 'swing'); return false; }); });l <!-- タブの切り替え --> <script type="text/javascript"> function ChangeTab(tabname) { document.getElementById('tab001').style.display = 'none'; document.getElementById('tab002').style.display = 'none'; if(tabname) { document.getElementById(tabname).style.display = 'block'; } } </script> <html> <div class="nav_box"> <ul class="nav"> <li><a href="#pagelink_1">トップ</a></li> <li><a href="#pagelink_2">セカンド</a></li> <li><a href="#pagelink_3">サード</a></li> </ul> </div>

<span id="pagelink_1"></span>

<div>要素1</div> <span id="pagelink_2"></span> <div>要素1</div> <span id="pagelink_3"></span> <div>要素1</div> <div class="check_box"> <ul class="tabbtn"> <li><a onClick="ChangeTab('tab001'); return false;" class="t01" href="#tab001">要素A</a></li> <li><a onClick="ChangeTab('tab002'); return false;" class="t01" href="#tab002">要素B</a></li> </div> <div class="tab"> <h4 id="tab001">要素A内容</h4> <h4 id="tab002">要素B内容</h4> </div>

試したこと

・ページ内リンク
・ページ内スクロール
・ページ内リンク アンカー#以外
・ページ内リンク #を使わずに
をネット検索しましたが、希望の情報を得られませんでした。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

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

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

m.ts10806

2020/01/16 06:43

何も調べがつかない内容でしょうか。
funachan

2020/01/16 06:53

検索をかけでも#を使ったものばかりで困ってます。
m.ts10806

2020/01/16 06:59

この質問内容では調べたかどうかもわかりませんので、調べたこと試したことを具体的に記載してください
funachan

2020/01/16 07:05

調べた内容は、質問内容をネット検索しただけです。 上手い方法がみつからずまだ何も試していないです。。。
m.ts10806

2020/01/16 07:10

調べ方 を聞いています。 「ネット検索した」だけだと、どのようなキーワードを投入したのか、どういう記事を参照したのか誰にも伝わりません。 なので、もしかしたらヒントがあったかもしれないのにスルーした可能性も判断できません。調べ方もスキルのうちなので、そこをきちんと書いておくことで、ほしい情報にアクセスするためにはどういう調べ方をすると良いのかをアドバイス得られます。自分で解決できたらそれが一番早いですよね? 質問は編集できますので追記してください
funachan

2020/01/16 07:33

ご指摘ありがとうございます。 検索したワードを追加しました。 更に調べて見ます。
m.ts10806

2020/01/16 07:49

私が理解できてないかもしれませんので確認です。 >タブの切り替わりと同時にスクロールも動いてしまいます。 タブ切り替えのコードとうまくやれば#あっても同居できるのではないかという気がしました。 タブ切り替え含めて現在のコードを提示されたほうが良いかもしれません。 場合によってはセレクタ追加するだけで解決する可能性もあります。 同時にスクロールするもので結構ですので現在のコードを提示いただけますか?
funachan

2020/01/16 08:12

ご返信有り難うございます。 一部ですが現在のコードを提示いたしました。 <a onClick="ChangeTab('tab001'); return false;" class="t01" href="#tab001"> こちらで#を使用するため、スクロールしてしまいます。
m.ts10806

2020/01/16 08:22

あの、できればコードはマークダウンを。ベタで置かれると行頭が詰まっていたりして正しくコードをコピペできませんので。
m.ts10806

2020/01/16 08:31

あと勘違いしてたかもしれません。 タブ切り替えの時にスクロールをさせたくないということですよね? 調べ方とか見てると別の方法でスクロールさせる方法を探っているように見えます
x_x

2020/01/16 08:49

提示コードで「タブの切り替わりと同時にスクロールも動いてしま」うのが再現できませんでした。 コードの確認と jQuery のバージョン、使っているブラウザを書いてもらえますか?
funachan

2020/01/16 08:49

ご返信ありがとうございます。 >タブ切り替えの時にスクロールをさせたくないということですよね? そうです! 文章がわかりづらく申し訳ございません。。 また、マークダウンを知らなくて勉強不足で重ね重ね申し訳ありません。
m.ts10806

2020/01/16 08:52

マークダウンについては↓ https://teratail.com/help#about-markdown >そうです! では文章は修正しておいていただけると。 おそらくその要件だと現在ついてる回答が合わないものになってしまっています。(回答者さんに一言伝えておいたほうが良いですね)
funachan

2020/01/16 09:00

いろいろとご回答をいただきまして、ありがとうございます。 関連した質問内の スムーススクロールとTABの併用 から解決できました! 次回からはもっと分かりやすく詳しく記載するように心がけます。
m.ts10806

2020/01/16 09:33 編集

了解です。解決されたようで何よりです。 自身で解決方法を回答として記載し、自己解決とするか、 もし、root_jpさんの回答がヒントとなったのでしたらそちらに具体的にどう実装して解決になったかコメントをしてあげてください。 ただ、また質問する機会はあるかもしれませんし、マークダウンのcode機能は今のうちに練習して覚えておきましょう。 基本的にはコード部分を選択し<code>ボタンを押すか、先に<code>ボタンを押してブロックを挿入しておき ここに言語を入力 →HTMLなど言語名に変更 コード →実際のコードに置き換え するだけです。
guest

回答1

0

JavaScriptのscrollToなどを使っても動かせますよ。
動かしたい位置のDOM要素の座標を取得して、scrollToでその位置を指定する感じです。

window.scrollTo

投稿2020/01/16 06:55

root_jp

総合スコア4666

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

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

funachan

2020/01/16 07:03

回答ありがとうございます。 scrollTo参考にさせていただきます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問