前提・実現したいこと
スクロールして画面指定位置で要素をアニメーションさせるものを作っています。詳しく言うと、スクロールすると画像や見出しと文字が太いラインが横スライドしてから、それらが出てきます。また文章Pは同時にフェードインして出てきます。
発生している問題
現在のコードでは繰り返しスクロールしても上記のようにして出てきます。しかし私は、2回目以降のスクロールは、繰り返したくないのですが、JSにどのようなコードを追記したら良いのかわかりません。初回と回にには何入れたら良いのでしょうか?```
どの部分がスペルミスになっていますか?
そのコードどこにjsのどこに付け足したら良いのでしょうか?
html, body, div, span, h1, h2, h3, h4, h5, h6, p, a, img, ul, li, article, figure, figcaption, footer, header, menu, nav, section { margin: 0; padding: 0; border: 0; font-size: 100%; font: inherit;/*vertical-align: baseline;*/ } * { box-sizing: border-box; -ms-box-sizing: border-box; -o-box-sizing: border-box; } /*flexbox*/ .flex { display: -webkit-flex; display: -moz-flex; display: -ms-flex; display: -o-flex; display: flex; flex-wrap: wrap; -webkit-flex-wrap: wrap; } .flex--start { justify-content: flex-start; -webkit-justify-content: flex-start; } .flex--center { justify-content: center; -webkit-justify-content: center; } .flex--end { justify-content: flex-end; -webkit-justify-content: flex-end; } .flex--bet { justify-content: space-between; -webkit-justify-content: space-between; } /*画面幅*/ .hero { margin-bottom: 120px; max-height: 600px; overflow: hidden; } /*画像幅*/ .hero__img { height: auto; width: 100%; } /*画像と画像の間隔*/ .sec { margin-bottom: 120px; } .img-container { overflow: hidden; position: relative; } .img-container__img { display: block; opacity: 0; position: relative; transition: all .5s .3s ease; z-index: 0; } /*画像スクロールした時の色*/ .img-container:before { background: #F9FF00; content: ''; display: block; height: 100%; position: absolute; transform: translateX(-100%); transition: all .8s 0s ease; width: 100%; z-index: 1; } /*文字幅位置*/ .text-container { padding: 0 60px; } /*見出しの文字色と大きさと太さ*/ .text-container__title { color: #333; display: inline-block; font-size: 210%; font-weight: 600; overflow: hidden; position: relative; z-index: 0; } /*見出し文がスクロールした時に出てくる色*/ .text-container__title:before { background: #F9FF00; content: ''; display: block; height: 100%; position: absolute; transform: translateX(-100%); transition: all .8s .3s ease; width: 100%; z-index: 1; } /*スクロールすると文字がフェードして出てくる*/ .text-container__title__inner { display: inline-block; opacity: 0; transition: all .8s .5s ease; } /*同上*/ .text-container__text { left: -50px; font-size: 20px; opacity: 0; position: relative; transition: all .5s .5s ease; } /*アニメーションするプロパティを設定します*/ .img-container.active img { opacity: 1; } .img-container.active:before { transform: translateX(100%); } .text-container.active .text-container__title:before { transform: translateX(100%); } .text-container.active .text-container__title__inner { opacity: 1; } .text-container.active .text-container__text { left: 0; opacity: 1; } コード
<html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width"> <title>トップページ</title> <script src="java/jquery-3.3.1.min.js"></script> <script src="java/jquery.waypoints.min.js"></script> <script src="java/smooth-scroll.js"></script> <script>$('.img-container').waypoint(function(direction){ var activePoint = $(this.element); //scroll down if (direction === 'down') { activePoint.addClass('active'); } else{ activePoint.removeClass('active'); } },{offset : '70%'}); $('.text-container').waypoint(function(direction){ var activePoint = $(this.element); //scroll down if (direction === 'down') { activePoint.addClass('active'); } else{ activePoint.removeClass('active'); } },{offset : '70%'}); }); jQuery(function($){ // #で始まるアンカーをクリックした場合に処理 jQuery('a[href^="#"]').click(function() { // スクロールの速度 var speed = 400; // ミリ秒 // アンカーの値取得 var href= jQuery(this).attr("href"); // 移動先を取得 var target = jQuery(href == "#" || href == "" ? 'html' : href); // 移動先を数値で取得 var position = target.offset().top; // スムーススクロール jQuery('body,html').animate({scrollTop:position}, speed, 'swing'); return false; }); }); </script> </head> <body> <section> <div class="fadein"> <h3>見出し</h3> </div> <section class="sec"> <div class="flex flex--bet"> <figure class="img-container col2"> <img class="img-container__img" src="画像" alt="img01"> </figure> <div class="text-container col2"> <h2 class="text-container__title"><span class="text-container__title__inner">見出しh2</span></h2> <p class="text-container__text"> 文章 </p> </div> </div> </div> </section> <section class="sec"> <div class="flex flex--bet"> <div class="text-container col2"> <h2 class="text-container__title"><span class="text-container__title__inner">見出し</span></h2> <p class="text-container__text"> 文章 </p> <!--<figure class="img-container col2">--> <div class="fadein"> <div class="imgWrap"> </div> </div> <!--</figure>--> </div> <!--text-container--> <figure class="img-container col2"> <img class="img-container__img" src="画像" alt="img01"> </figure> </div> <!--flex-bet--> </section> </section> </head> </html> コード









