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

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

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

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

HTML

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

CSS

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

Q&A

解決済

1回答

543閲覧

フェードインアニメーションで要素の位置が取得できない

syo--

総合スコア28

jQuery

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

HTML

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

CSS

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

0グッド

0クリップ

投稿2021/04/07 13:29

フェードインアニメーションを実装するため、.servicesの位置を取得しようとしているのですができません
デベロッパーツールで$(...).offset(...).top is not a functionという表示がされます
https://toriton.link/coding/current_nav/
こちらのサイトを参考にjQueryのコードを書き直してみても同じ状態です

ちなみに、 if($(".services").length()){
var service_opa = $(".services").offset().top();}のlengthとtopの後ろの()を消すとこのエラー文は消えます 理由はわかりません

HTML

1<!DOCTYPE html> 2<html> 3 <head> 4 <meta charset="utf-8"> 5 <title>MY PORTFOLIO</title> 6 <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.2/css/all.css"> 7 </head> 8 <body> 9 <header class="header"> 10 <p class="header-left">My portfolio</p> 11 <ul class="header-right"> 12 <li class="header-right-li"><a href="#about">ABOUT</a></li> 13 <li class="header-right-li"><a href="#skills">SKILLS</a></li> 14 <li class="header-right-li"><a href="#services">SERVICES</a></li> 15 <li class="header-right-li"><a href="#works">WORKS</a></li> 16 </ul> 17 </header> 18 19 <section class="skills" id="skills"> 20 <h2 class="about-h2 ">SKILLS</h2> 21 <div class="skills-wrapper"> 22 <div class="skill-icon "> 23 <img class="skill-img skill-margin" src="img/html2.png" alt=""> 24 <p class="skill-icon-name ">HTML</p> 25 <p class="skill-setumei">Webページを作るための核になる言語です。</p> 26 </div> 27 28 <div class="skill-icon"> 29 <img class="skill-img" src="img/css.png" alt=""> 30 <p class="skill-icon-name">CSS</p> 31 <p class="skill-setumei">コンテンツのデザインやレイアウトをカスタマイズして、Webサイトの見た目を良くしてくれます。</p> 32 </div> 33 34 <div class="skill-icon"> 35 <img class="skill-img skill-margin" src="img/jQuery.png" alt=""> 36 <p class="skill-icon-name">jQuery</p> 37 <p class="skill-setumei">Webサイトに動きをつけます</p> 38 </div> 39 40 <div class="skill-icon"> 41 <img class="skill-img skill-margin" src="img/sass.png" alt=""> 42 <p class="skill-icon-name">SASS</p> 43 <p class="skill-setumei">CSSを改良し、効率性を高めた言語です。</p> 44 </div> 45 </div> 46 </section> 47 48 <section class="services" id="services"> 49 <h2 class="about-h2">SERVICES</h2> 50 <div class="services-wrapper"> 51 <div class="service service-1"> 52     <i class="fas fa-laptop-code"></i> 53 <h4>コーディング</h4> 54 <p>お客様から頂いたデザインを元に丁寧にコーディングいたします</p> 55 </div> 56 57 <div class="service service-2"> 58     <i class="fas fa-file-alt"></i> 59 <h4>LP制作</h4> 60 <p>お客様のご要望に適切に沿ったサイトを制作いたします</p> 61 </div> 62 </div> 63 </section> 64 65 <script src="js/jquery-3.5.1.min.js"></script> 66 <script src="js/portfolio.js"></script> 67 </body> 68</html>

CSS

1html { 2 font-size: 62.5%; 3} 4 5a { 6 color: #333; 7 text-decoration: none; 8} 9 10*, *::before, *::after { 11 box-sizing: border-box; 12} 13 14body { 15 font-family: Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif; 16 margin: 0px; 17 background: url(../img/ocean.jpg) no-repeat fixed; 18 background-size: cover; 19 padding-bottom: 30px; 20} 21 22h1, h2, h3, h4, h5, h6 { 23 margin: 0px; 24} 25 26.header { 27 display: flex; 28 justify-content: space-between; 29 height: 70px; 30 width: 100%; 31 background-color: #333; 32 position: fixed; 33 z-index: 5; 34} 35 36.header-left { 37 line-height: 70px; 38 font-size: 1.5rem; 39 color: #fff; 40 margin-left: 20px; 41 font-family: "Redressed"; 42 letter-spacing: 1px; 43 cursor: pointer; 44} 45 46.header-right { 47 display: flex; 48} 49 50.header-right-li { 51 text-align: center; 52 list-style-type: none; 53 color: #fff; 54 height: 70px; 55 margin: 0 30px; 56} 57.header-right-li a { 58 font-weight: bold; 59 font-size: 1.2rem; 60 color: #fff; 61 display: block; 62 height: 100%; 63 padding: 0px 2px; 64 line-height: 70px; 65 transition: 0.15s; 66} 67.header-right-li a:hover { 68 background-color: #fff; 69 color: #333; 70} 71 72.skills { 73 width: 80%; 74 margin: 0 auto; 75 background-color: black; 76 padding: 50px 4% 70px; 77 padding-top: 70px; 78 text-align: center; 79 margin-bottom: 150px; 80} 81.skills h2 { 82 font-size: 3rem; 83 margin-bottom: 60px; 84 color: #fff; 85 letter-spacing: 1px; 86 background-color: #172C45; 87 line-height: 1.5; 88} 89 90.skills-wrapper { 91 display: flex; 92 justify-content: center; 93} 94 95.skills-p-1 { 96 color: #fff; 97 font-size: 1.8rem; 98 margin-bottom: 80px; 99 letter-spacing: 1px; 100} 101 102.skill-icon { 103 display: inline-block; 104 margin: 0 20px; 105 width: 200px; 106} 107 108.skill-icon-name { 109 color: #fff; 110 font-size: 2.3rem; 111 letter-spacing: 1px; 112 margin-bottom: 15px; 113 font-family: "Raleway"; 114 font-weight: bold; 115} 116 117.skill-img { 118 height: 120px; 119} 120 121.skill-icon:nth-of-type(2) img { 122 height: 150px; 123} 124 125.skill-icon:nth-of-type(2) { 126 position: relative; 127 top: -17px; 128} 129 130.skill-margin { 131 margin-bottom: 10px; 132} 133 134.skill-setumei { 135 color: #fff; 136 font-size: 1.8rem; 137 line-height: 1.5; 138} 139.visible{ 140 opacity:1; 141} 142.services { 143 text-align: center; 144 width: 80%; 145 margin: 0 auto; 146 margin-bottom: 150px; 147 padding-top: 70px; 148 margin-top: -70px; 149} 150.services h2 { 151 font-size: 3rem; 152 color: #fff; 153 line-height: 2.5; 154 background-color: rgba(0, 0, 0, 0.7); 155 letter-spacing: 1px; 156} 157.services .services-wrapper { 158 display: flex; 159 justify-content: center; 160 background-color: rgba(255, 255, 255, 0.7); 161 padding: 50px 0px; 162} 163.services .service { 164 width: 300px; 165 height: 250px; 166 background-color: #fff; 167 margin: 0 50px; 168 padding: 30px 3% 0; 169 box-shadow: 5px 5px 15px rgba(0, 0, 0, 0.7); 170 border-radius: 4px; 171opacity:0; 172} 173.services .service .fas { 174 font-size: 4rem; 175 display: block; 176 margin-bottom: 30px; 177 color: orange; 178} 179.services .service h4 { 180 font-size: 2rem; 181 margin-bottom: 20px; 182} 183.services .service p { 184 font-size: 1.5rem; 185 font-weight: bold; 186 line-height: 1.5; 187}

jQuery

1$(function(){ 2 3 $("#skills").click(function(){ 4 var skills = $(this).attr("href"); 5 var skills_position = $(skills).offset().top(); 6 $("html,body").animate({"scrollTop":skills_position},"fast"); 7}); 8/////////////////////////////////////////////////// 9$("#services").click(function(){ 10 var services = $(this).attr("href"); 11 var services_position = $(services).offset().top(); 12 $("html,body").animate({"scrollTop":services_position},"fast"); 13}); 14//////////////////////////////////////////////// 15$(window).scroll(function(){ 16 if($(".services").length()){ 17 var service_opa = $(".services").offset().top();} 18 if ($(window).scrollTop()>service_opa){ 19 $(".service").addClass("visible"); 20 } 21 else{$("service").removeClass("visible")}; 22}); 23/////////////////////////////////////////////// 24});

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

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

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

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

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

guest

回答1

0

ベストアンサー

いろいろ間違いがあるので、diff で -と+の違いをみてください。

diff

1$(window).scroll(function(){ 2- if($(".services").length()){ 3+ if($(".services").length){ 4- var service_opa = $(".services").offset().top();} 5+ var service_opa = $(".services").offset().top;} 6 if ($(window).scrollTop()>service_opa){ 7 $(".service").addClass("visible"); 8 } 9- else{$("service").removeClass("visible")}; 10+ else{$(".service").removeClass("visible")}; 11});

あと、CSSを詳細度の関係で、visibleクラスのセレクターが効いてません。

詳細度を上げるか、

css

1.services .service.visible{ 2 opacity:1; 3}

!important を付けるかしてください。

css

1.visible { 2 opacity: 1 !important; 3}

投稿2021/04/07 15:56

hatena19

総合スコア33715

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

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

syo--

2021/04/08 03:30

ありがとうございます 無事動くようになりました  jQueryのlengthメソッドとtopメソッドの()を消したら動くようになった理由について ご存じでしたら教えていただけますでしょうか 調べてみても全く情報が出てこなくて.....
syo--

2021/04/09 02:11

メソッドとプロパティを区別を曖昧にしていました 復習します ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問