Плавный переход к якорю внутри большого DIV блока.
Здравствуйте!
Возникла проблема с точным переходом по якорю с использованием jQuery. Если я проматываю до самого верха и нажимаю ссылку "ВНИЗ", то якорь оказывается где-то выше верхней границы, если немного вниз проматываю, так что ссылка "ВНИЗ" оказывается вверху и нажимаю на нее, то якорь оказывается ниже верхней границы. Подскажите пожалуйста как изменить код чтобы якорь всегда на верхней границе оказывался? Код который я использую: <html> <head> <title>testscrolling</title> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script> <script type="text/javascript"> $(function(){ $('a[href^="#"]').on('click', function(event) { event.preventDefault(); var sc = $(this).attr("href"), //dn = $(sc).offset().top; dn = $(sc).position().top; $('div').animate({scrollTop: dn}, 1000); }); }); </script> </head> <body style='overflow-y: none;'> <div style='height: 100%;margin: 10px auto;overflow-y: none;'> <div style='height: 20%; width: 100%; background: #ffff00'> </div> <div style='background: #00ffff; overflow-y: scroll; height: 60%'> <a id="up"></a> <?php for($i = 0; $i < 10; $i++) echo "<p>test</p>"?> <p><a href="#down" style='background: #FF0000'>ВНИЗ</a></p> <?php for($i = 0; $i < 890; $i++) echo "<p>test</p>"?> <a id="down"></a> <p><a href="#up" style='background: #FF0000'>ВВЕРХ</a></p> <?php for($i = 0; $i < 100; $i++) echo "<p>test</p>"?> </div> <div style='height: 20%; width: 100%; background: #ffff00'> </div> </div> </body> </html> |
a.r.akhmadullin,
Пожалуйста, отформатируйте свой код! Для этого его можно заключить в специальные теги: js/css/html и т.п., например: [html run] ... минимальный код страницы с вашей проблемой [/html] О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting. |
Часовой пояс GMT +3, время: 00:58. |