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

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

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

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

HTML

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

CSS

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

Q&A

解決済

1回答

148閲覧

GSAPのpin機能がうまく効かない

tsl56

総合スコア1

JavaScript

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

HTML

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

CSS

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

0グッド

1クリップ

投稿2024/11/18 01:42

実現したいこと

同じ場所でカードが重なる表現をしたく、下記YOUTUBEを参考にコードを書きました。
https://youtu.be/e8SdVY-l8ZE?si=H_hjRhFUgq-RKHui

発生している問題・分からないこと

pin機能がうまく機能していないのか、スクロールをしても要素が重なりません。

エラーメッセージ

error

1Uncaught ReferenceError: scrollTrigger is not defined

該当のソースコード

JavaScript

1gsap.registerPlugin(scrollTrigger); 2 3// lenis 4const lenis = new Lenis(); 5lenis.on('scroll', scrollTrigger.update); 6gsap.ticker.add((time) => { 7 lenis.raf(time * 1000) 8}); 9 10gsap.ticker.lagSmoothing(0); 11 12//animation 13const cardsWrapper = gsap.utils.toArray(".cards-item"); 14const cardsEl = gsap.utils.toArray(".cards-el"); 15 16cardsWrapper.forEach((e, i) => { 17 const card = cardsEL[i]; 18 let scale = 1, rotate = 0; 19 if(i !==cardsEl.lenght - 1) { 20 scale = 0.9 + 0.025 * i; 21 rotate = -10; 22 } 23 gsap.to(card, { 24 scale: scale, 25 rotationX: rotate, 26 transformOrigin: "top center", 27 ease: 'none', 28 scrollTrigger: { 29 trigger: e, 30 star: "top" + (70 + 40 * i), 31 end: "bottom +=650px", 32 endTrigger: ".end-anim", 33 pin: e, 34 pinSpacing: false, 35 scrub: true 36 } 37 }) 38}); 39

CSS

1.voice-card { 2 position: relative; 3 width: 100%; 4 min-height: 100vh; 5 z-index: 2; 6} 7.cards { 8 width: 70%; 9 margin: 0 auto; 10 padding: 0 50px; 11} 12.cards-item { 13 width: 100%; 14 perspective: 500px; 15 margin-bottom: 50px; 16} 17.cards-item:last-child { 18 margin-bottom: 0; 19} 20.cards-el { 21 width: 100%; 22 height: 400px; 23} 24.cards-el-wrapper { 25 display: flex; 26 align-items: center; 27 width: 100%; 28 height: 100%; 29 gap: 40px; 30 padding: 45px; 31 border-radius: 4px; 32 background: #BAA0A01A; 33 backdrop-filter: blur(10px); 34 will-change: blur; 35} 36.cards-img { 37 width: 40%; 38 height: 100%; 39 border-radius: 4px; 40 overflow: hidden; 41} 42.cards-img img { 43 display: block; 44 width: 100%; 45 height: 100%; 46 object-fit: cover; 47} 48.cards-txt { 49 width: calc(60% - 40px); 50 color: var(--bg1); 51} 52.cards-el-sub-title { 53 font-size: clamp(1.5rem, 1.443rem + 0.29vw, 1.7rem); 54} 55.cards-el-title { 56 margin-bottom: 20px; 57 font-size: clamp(2rem, 1.771rem + 1.14vw, 2.8rem); 58} 59.cards-el-p { 60 font-size: clamp(1.4rem, 1.343rem + 0.29vw, 1.6rem); 61}

HTML

1<section id="voice" class="voice-card"> 2 <h2>VOICE</h2> 3 <div class="cards"> 4 <div class="cards-item"> 5 <div class="cards-el"> 6 <div class="cards-el-wrapper"> 7 <div class="cards-img"> 8 <img src="image/voice4.jpg" alt="boy1"> 9 </div> 10 <div class="cards-txt"> 11 <p class="cards-el-sub-title">男の子 (4歳) のママ 初級コース</p> 12 <h4 class="cards-el-title">レッスン日を楽しみにするほどピアノが大好きに。</h4> 13 <p class="cards-el-p"> 14 音楽の楽しさを知ってほしいと思い通い始めました。<br> 15 息子にとってピアノが初めての楽器でしたが、優しく丁寧に指導していただき今ではピアノが大好きです。<br> 16 まだまだ集中が続かない息子に、その都度指導の方法を変えてレッスンを進めていただけることもとてもありがたいです。​<br> 17 「早くピアノにいきたい!」「先生大好き!」とレッスン日を楽しみにする姿を見て、先生と出会えてよかったなと感じます。 18 </p> 19 </div> 20 </div> 21 </div> 22 </div> 23 <div class="cards-item"> 24 <div class="cards-el"> 25 <div class="cards-el-wrapper"> 26 <div class="cards-img"> 27 <img src="image/voice5.jpg" alt="boy2"> 28 </div> 29 <div class="cards-txt"> 30 <p class="cards-el-sub-title">小学3年生 男の子のママ 演奏コース</p> 31 <h4 class="cards-el-title">ピアノ演奏の奥深さと楽しさを親子で実感。</h4> 32 <p class="cards-el-p"> 33 初めてのピアノですが、先生の丁寧なご指導のおかげで息子のモチベーションも維持したままレッスンに通えています。<br> 34 指や身体の使い方、緩急のつけ方や、曲の情景を想像して弾くなど、本格的な指導をして頂け、1時間のレッスン内で音色がどんどん美しく変わっていく様子が、素人の私にもわかる程で、いつも感動しています。<br> 35 ピアノ演奏の奥深さと楽しさを親子で実感しています。 36 </p> 37 </div> 38 </div> 39 </div> 40 </div><div class="cards-item"> 41 <div class="cards-el"> 42 <div class="cards-el-wrapper"> 43 <div class="cards-img"> 44 <img src="image/voice6.jpg" alt="boy3"> 45 </div> 46 <div class="cards-txt"> 47 <p class="cards-el-sub-title">男性 (24歳) ピアノ経験あり ​大人のコース</p> 48 <h4 class="cards-el-title">細やかな指導のおかげでピアノが以前より好きになった。</h4> 49 <p class="cards-el-p"> 50 先生は雰囲気が明るく気さくな先生で、毎回のレッスンがとても楽しいです。<br> 51 ピアノがより好きになりました。<br> 52 ​専門的な技術、知識を持たれており、自分の演奏の良い部分やできていない部分を細やかに指導して くださります。<br> 53 自分の弱点がわかるので練習にも取り組みやすくなりました。 54 </p> 55 </div> 56 </div> 57 </div> 58 </div> 59 </div> 60 <div class="end-anim"></div> 61 </section><!-- voice --> 62<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script> 63 <script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/gsap.min.js"></script> 64 <script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/ScrollTrigger.min.js"></script> 65 <script src="js/script.js"></script>

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

GSAPのScrollTriggerに必要なプラグインは記載、GSAPを利用する際のコードも記載していますが、変化ありません

補足

特になし

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

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

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

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

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

guest

回答1

0

ベストアンサー

typoです。scrollTriggerScrollTrigger

投稿2024/11/18 02:39

Lhankor_Mhy

総合スコア36898

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

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

tsl56

2024/11/18 09:54

回答ありがとうございます。scrollTriggerを全てScrollTrigger試してみましたが解決できませんでした。 この場合どの辺りに原因がありそうでしょうか?
Lhankor_Mhy

2024/11/18 10:06

> scrollTriggerを全てScrollTrigger試してみました それはやりすぎでは……変えなくてもいいところは変えなくていいですよ --- > この場合どの辺りに原因がありそうでしょうか? 試してみた場合のエラーメッセージなどはありますか?
tsl56

2024/11/18 10:26

scrollTrigger is not definedから下記エラーに変わりました。 Uncaught ReferenceError: cardsEL is not defined at script.js:63:18 at Array.forEach (<anonymous>) at script.js:62:14
Lhankor_Mhy

2024/11/18 13:24

cardsEL→ cardsEl コードエディタ使った方がいいですよ
tsl56

2024/11/19 10:28

回答したあとに気づきましたmm 失礼しました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.37%

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

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

質問する

関連した質問