カーテンが開くような感じのテキストアニメーションを作成中ですが、
最初に表示される時に何秒間かかかっているので、すぐに表示ができるようにしてみたいです。
作成中のコード
ご意見いただければ幸いです。
HTML
1<div class="text"> 2 <h1 class="title"> 3 <span>TEXT ANIMATION</span> 4 </h1> 5 <p class="sentence"> 6 <span>サンプル</span> 7 </p> 8</div> 9
CSS
1.title { 2 overflow: hidden; 3 transform: translate(-100%, 0); 4 transition: transform cubic-bezier(0.215, 0.61, 0.355, 1) 0.5s; 5 color: #aa8f7b; 6 font-family: 'Josefin Sans', sans-serif; 7} 8 9.title span { 10 display: block; 11 transform: translate(100%, 0); 12 transition: transform cubic-bezier(0.215, 0.61, 0.355, 1) 0.5s; 13} 14 15.title.-visible, 16.title.-visible span { 17 transform: translate(0, 0); 18} 19 20.sentence { 21 overflow: hidden; 22 transform: translate(-100%, 0); 23 transition: transform cubic-bezier(0.215, 0.61, 0.355, 1) 0.5s; 24 font-family: "Yu Gothic Medium"; 25 font-size: 16px; 26 text-align: center; 27} 28 29.sentence span { 30 display: block; 31 transform: translate(100%, 0); 32 transition: transform cubic-bezier(0.215, 0.61, 0.355, 1) 0.5s; 33} 34 35.sentence.-visible, 36.sentence.-visible span { 37 transform: translate(0, 0); 38} 39 40/****** Base style. ******/ 41body { 42 display: flex; 43 height: 100vh; 44 justify-content: center; 45 align-items: center; 46 margin: 0; 47}
js
1const CLASSNAME = "-visible"; 2const TIMEOUT = 1500; 3const DELAY = 100; 4const $target1 = $(".title"); 5const $target2 = $(".sentence"); 6 7setInterval(() => { 8 $target1.addClass(CLASSNAME); 9 setTimeout(() => { 10 $target2.addClass(CLASSNAME); 11 }, DELAY); 12 13 setTimeout(() => { 14 $target1.removeClass(CLASSNAME); 15 setTimeout(() => { 16 $target2.removeClass(CLASSNAME); 17 }, DELAY); 18 }, TIMEOUT); 19}, TIMEOUT * 2);
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/04/03 04:15