ページ内リンクでスクロール部分内にあるリンク先までスムーズスクロールさせようとしましたが、スクロール部内ではスクロールせず、windowの一番下までスクロールしてしまいます。
下記試してみました。
どうすればスクロールしながら目的の場所をスクロール内のトップに持ってこれるでしょうか?
大変困っています。よろしくお願いします。
HTML
1<html> 2<head> 3 <title>タイトル</title> 4</head> 5<body> 6<div class="aaa"> 7 <a href="#bbb">bbb</a> 8</div> 9<div class="scroll"> 10 <p class="ccc">sssssssss</p> 11 <p class="ccc">sssssssss</p> 12 <p class="ccc">sssssssss</p> 13 <p class="ccc">sssssssss</p> 14 <p class="ccc">sssssssss</p> 15 <p class="ccc">sssssssss</p> 16 <p class="ccc">sssssssss</p> 17 <p class="ccc">sssssssss</p> 18 <p class="ccc">sssssssss</p> 19 <p class="ccc">sssssssss</p> 20 <p class="ccc" id="bbb">bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb</p> 21 <p class="ccc">sssssssss</p><p class="ccc">sssssssss</p><p class="ccc">sssssssss</p><p class="ccc">sssssssss</p><p class="ccc">sssssssss</p><p class="ccc">sssssssss</p><p class="ccc">sssssssss</p><p class="ccc">sssssssss</p><p class="ccc">sssssssss</p> 22</div> 23<script src="https://code.jquery.com/jquery-3.3.1.js"></script> 24</body> 25</html>
css
1.scroll{ 2 height:500px; 3 overflow:scroll; 4 background-color: #eee; 5} 6.ccc{ 7 height:200px; 8} 9.aaa{ 10 height:500px; 11}
javascript
1 $('.aaa').on('click','a[href^="#"]',function(e){ 2 e.preventDefault(); 3 var speed = 400; 4 var adjust = 75; 5 var href = $(this).attr("href"); 6 var target = $(href == "#" || href == "" ? 'html' : href); 7 let targetss = $('.scroll').position(); 8 var position = target.offset().top + targetss.top - adjust; 9 $('body,html').animate({ 10 scrollTop: position 11 }, speed, 'swing'); 12 return false; 13 });
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。