前提・実現したいこと
ウェブサイト上で
スクロールに連動したアニメーションを作成しました。
このアニメーションが中途半端な位置で止まらないように、
アニメーションの着火地点までスクロールしたら、アニーメーション終了まで自動でスクロールされるように実装をしたいです。
html
1<section class="section"> 2 <div class="box01 box"> 3 <div class="box_inner"> 4 <div id="link"><a class="sample1" onclick="sample1()">ここをクリックすると、スクロール位置がY方向に100vh移動します。</a></div> 5 <p>シーン1</p> 6 </div> 7 </div> 8 <div class="box02 box"> 9 <div class="box_inner"> 10 <p>シーン2</p> 11 </div> 12 </div> 13 <div class="box03 box"> 14 <div class="box_inner"> 15 <p>シーン3</p> 16 </div> 17 </div> 18</section>
css
1.section { 2 height:100vh; 3 width: 100%; 4 overflow-y: scroll; 5 overflow-x: hidden; 6 display: flex; 7 flex-direction: column; 8} 9 10 11.box { 12 width: 100%; 13 height: 100vh; 14} 15 16#link{ 17 position: fixed; 18 top: 50%; 19 left: 50%; 20 z-index: 99999; 21}
javascript
1function sample1() { 2 var height = $(window).height(); 3 window.scrollBy(0, height); 4 }
例えば、.box01の真ん中までスクロールをすると、
自動で.box02の真ん中まで自動でスクロールされるようなイメージです。
逆にいうと.box01の真ん中から.box02の真ん中の間では止まれないようにしたいです。
試したこと
相対位置での指定をしたいので、
scrollByメソッドを用いてスムーススクロールすれば良いかと思ったのですが、
「表示領域に入ったら(例で言う.box01の真ん中までいったら)scrollByを発火する」と言う方法と
「スムーススクロールする」と言う方法が
がわからず困っております。。。
検索をしてもなかなか出てこず、ヒントだけでもいただけますと
大変助かります。
ご存知の方がいらっしゃいましたら、ご教授いただけますと幸いです。
よろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー