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

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

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

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

HTML

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

CSS

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

Q&A

1回答

2585閲覧

headerにfixedを設定している状況で、スムーススクロールのずれを改善したい(aos.css、aos.jsのアニメーションを維持しながら)

sakaseteotome

総合スコア2

jQuery

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

HTML

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

CSS

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

1グッド

0クリップ

投稿2021/11/25 15:26

編集2021/11/25 15:29

改善したい内容は「headerにfixedを設定している状況で、スムーススクロールのずれを改善したい」です。
分からない箇所があるのは以下のURLのサイトです。
https://sakasete.conohawing.com/yourcoding/index.html
headerにfixedを設定しているため、スムーススクロールをしようとすると、headerの高さ(94px)も一緒に含まれてスクロールがずれてしまう状況で困っています。

どのようにスムーズスクロールをしたいかというと、headerのメニューにある「特徴」「価格」「お問い合わせ」右端の「お問い合わせボタン」headerの下にある「お問い合わせボタン」の5つのいずれかをクリックすると、サイトのなかにある該当箇所にスクロールさせたいです。以下のようにスクロールさせたいです。
以下のようにスクロールしたいです。

「特徴」→「ユアコーディング3つの特徴」
「価格」→「価格」
「お問い合わせ」→「お問い合わせ」

一応、Jqueryで以下のように高さがズレないように制御を試みていますが、どうしてもずれてしまいます。
var windowWidth = $(window).width();
var headerHeight = 94;
$("a[href^='#']").click(function(){
var speed = 500;
var href = $(this).attr("href");
var target = $(href=="#" || href==""?"html":href);
var position = target.offset().top - headerHeight;
$("body,html").animate({scrollTop:position}, speed, "swing");
return false;
});

調べてみた結果、head内に「<link rel="stylesheet" href="css/aos.css">」を入れているのが原因と分かりました。このコードを外すと、正常にスクロールできるのですが、aos.css、aos.jsのアニメーションを維持しながら、正常なスクロールを実装したいと考えているところです。よろしくお願い致します。

html

1<header class="header"> 2 <div class="header-content"> 3 <div class="header-logo"> 4 <img src="img/logo.png"> 5 </div> 6 <a class="header-title" href="index.html"> 7 <h1>ユアコーディング</h1> 8 </a> 9 <nav class="header-menu"> 10 <li><a href="#features-link">特徴</a></li> 11 <li><a href="#price-link">価格</a></li> 12 <li><a href="#contact-link">お問い合わせ</a></li> 13 </nav> 14 <div class="header-contact"> 15 <a href="#contact-link" class="header-contact-color">お問い合わせ</a> 16 </div> 17 18 19 <nav> 20 <ul class="menu"> 21 <li class="menu-list"><a href="#features-link">特徴</a></li> 22 <li class="menu-list"><a href="#price-link">価格</a></li> 23 <li class="menu-list"><a href="#contact-link">お問い合わせ</a></li> 24 </ul> 25 </nav> 26 <button type="button" class="btn js-btn"> 27 <span class="btn-line"></span> 28 </button> 29 30 31 32 33 34 </div> 35 </header> 36 <section class="main" data-aos="fade-down"> 37 <div class="main-maru-img"> 38 <img src="img/maru.png"> 39 </div> 40 <div class="main-visual"> 41 <div class="main-visual-text-box"> 42 <div class="main-visual-text-1"> 43 コーディングの手間を<br> 最小に、デザインに注力<br>する助けに 44 </div> 45 <div class="main-visual-text-2"> 46 ユアコーディングはコーディングに<br>特化したフリーランス<br>デザインに注力されたい方の<br>助けになります 47 </div> 48 <div class="main-visual-text-contact"> 49 <a href="#contact-link" class="main-visual-text-contact-background">お問い合わせ</a> 50 </div> 51 </div> 52 <div class="main-visual-img-box"> 53 <div class="main-visual-img"> 54 <img src="img/manager.png"> 55 </div> 56 </div> 57 </div> 58 </section> 59 60 <section class="features" data-aos="fade-up" id="features-link"> 61 <h2 class="features-head">ユアコーディング3つの特徴</h2> 62 <h4 class="features-Eng">FEATURES</h4> 63 <h3 class="features-kousoku-code">高速コーディング</h3> 64 <section class="features-item"> 65 <div class="features-kousoku-code-img"><img src="img/cto.png"></div> 66 <div class="features-kousoku-code-text-box"> 67 <div class="features-kousoku-code-text-head">コーディングに特化した<br class="br-kousoku">フリーランスのため、<br>スピード感を持った開発が可能。</div> 68 <div class="features-kousoku-code-text">開発は常にスピードとの勝負です。<br>ユアコーディングはコーディングに<br class="br-kousoku">特化しているため、<br>素早く納品することで、クライアントが<br class="br-kousoku">デザインに注力<br class="br-kousoku-2">する助けとなります。</div> 69 </div> 70 </section> 71 <h3 class="features-kouhinshitu">高品質</h3> 72 <section class="features-item-2"> 73 <div class="features-kouhinshitu-text-box"> 74 <div class="features-kouhinshitu-text-head">正しいマークアップで、<br>内部SEOに強いコーディングを<br>デフォルトで行います。</div> 75 <div class="features-kouhinshitu-text">ユアコーディングでは、<br class="br-kousoku">「予測しやすい」「再利用しやすい」<br>「保守しやすい」「拡張しやすい」と言った設計をもとに<br>きちんとコーディングを行うため、<br class="br-kousoku">納品後も安心です。</div> 76 </div> 77 <div class="features-kouhinshitu-img"><img src="img/building_website.png"></div> 78 </section> 79 <h3 class="features-zinsoku">迅速なレスポンス</h3> 80 <section class="features-item3"> 81 <div class="features-zinsoku-img"><img src="img/new_message.png"></div> 82 <div class="features-zinsoku-text-box"> 83 <div class="features-zinsoku-text-head">原則いただいたメッセージは、<br>業務時間内であれば6時間以内に<br>お返しいたします。</div> 84 <div class="features-zinsoku-text">連絡を返さないフリーランスが多い中、<br>ユアコーディングでは定期的な進捗報告など、<br>社会人としての基本を踏まえて仕事を行なって<br>おります。</div> 85 </div> 86 </section> 87 </section> 88 <section class="price" data-aos="fade-up" id="price-link"> 89 <h2 class="price-head">価格</h2> 90 <h4 class="price-ing">PRICE</4> 91 <div class="price-table"> 92 <table border="1"> 93 <tr> 94 <td>HTMLコーディングトップページ</td><td>30.000円〜</td> 95 </tr> 96 <tr> 97 <td>HTMLコーディング下層1ページ</td><td>10.000円〜</td> 98 </tr> 99 <tr> 100 <td>HTML+WordPressトップページ</td><td>55.000円〜</td> 101 </tr> 102 <tr> 103 <td>HTML+WordPress下層1ページ</td><td>15.000円〜</td> 104 </tr> 105 </table> 106 </div> 107 <div class="price-syousai">*詳細な価格はページや仕様によって異なります</div> 108 <section class="contact" data-aos="fade-up" id="contact-link"> 109 <h2 class="contact-head">お問い合わせ</h2> 110 <h4 class="contact-ing">CONTACT</h4> 111 <h4 class="contact-text">コーディングの人出が足りないとき、<br>あなたの力になります</h4> 112 113 <div class="contact-form"> 114 <form action="#" method="post" id="form"> 115 <ul class="contact-box"> 116 <li> 117 <lavel for="form-label">お名前</lavel> 118 <div><input type="text" name="name" class="contact-nyuuryoku" placeholder="お名前"></div> 119 </li> 120 <li> 121 <lavel for="form-label">メールアドレス</lavel> 122 <div><input type="text" name="male" class="contact-nyuuryoku" placeholder="メールアドレス"></div> 123 </li> 124 <li> 125 <lavel class="form-label">お問い合わせ内容</lavel> 126 <div><textarea type="text" name="contact" class="contact-nyuuryoku-naiyou" placeholder="お問い合わせ内容"></textarea></div> 127 </li> 128 <li class="privacy-policy"> 129 <input type="checkbox" class="checkbox" id="confirmation" required> 130 <label for="confirmation" class="privacy-text"> 131 プライバシーに同意する 132 </label> 133 </li> 134 </ul> 135 <div class="sousin-btn"><input type="submit" value="送信" id="js-submit" disabled></div> 136 </form> 137 </div> 138 139</section>

javascript

1var windowWidth = $(window).width(); 2 var headerHeight = 94; 3 $("a[href^='#']").click(function(){ 4 var speed = 500; 5 var href = $(this).attr("href"); 6 var target = $(href=="#" || href==""?"html":href); 7 var position = target.offset().top - headerHeight; 8 $("body,html").animate({scrollTop:position}, speed, "swing"); 9 return false; 10 }); 11
Lhankor_Mhy👍を押しています

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

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

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

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

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

guest

回答1

0

target.offset().toptarget[0].offsetTopとするとどうでしょうか。

投稿2021/11/26 10:32

Lhankor_Mhy

総合スコア36960

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問