Плавная прокрутка вниз до якоря при окрытии страницы
Здравствуйте!
В интернете много вариантов того как сделать плавный скроллинг до якоря... например такой /* A smooth scroll */ $(function() { var menuhe = $('#menu').height(); // высота меню var menu = menuhe+20; // прибавляем 20 $("area[href*=#],a[href*=#]:not([href=#]):not([href^='#tab']):not([href^='#quicktab']):not([href^='#pane']):not([href *= '#inline'])").click(function() { if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') && location.hostname == this.hostname) { var target = $(this.hash); target = target.length ? target : $('[name=' + this.hash.slice(1) +']'); if (target.length) { $('html,body').animate({ scrollTop: target.offset().top - menu },1500); return false; } } }); }); Но они работают, только если нажимать якорную ссылку на этой же страницы.. А мне нужно, что бы прокрутка была при переходе с других страниц. Т.е. при открытии ссылки http://сайт.ru#якорь загружалась сама страница сайта, а затем прокручивалась вниз до нужного блока. |
$(window).load(function(){ if(location.hash.length) $('html,body').animate({ scrollTop:$('[name="'+location.hash.substr(1)+'"]').offset().top },300) }); |
Цитата:
|
Либо hash, либо якорь криво указываете.
<html> <head> <title>Untitled</title> <script src="https://code.jquery.com/jquery-3.2.1.min.js"></script> <script> $(function(){ var hash='#anchor'; if(hash.length) $('html,body').animate({ scrollTop:$('[name="'+hash.substr(1)+'"]').offset().top },300) }); </script> </head> <body style="padding-bottom:2000px;"> <div style="height:4800px;"></div> <a name="anchor">Anchor</a> </body> </html> |
Цитата:
<section class="block" id="tovari"></section> Как что проверить? |
Igorsrt, попробуйте этот код:
$(function(){ if(location.hash.length){ var target=$('[name="'+location.hash.substr(1)+'"]'); if(!target.length) target=$(location.hash); if(target.length) $('html,body').animate({ scrollTop:target.offset().top },300); }; }); |
Nexus,
Цитата:
|
рони, я видел.
Загуглил, оказывается наименование якоря можно и через id указывать. Я думал, что имя якоря должно быть всегда в "name" атрибуте. |
Цитата:
|
хотя нет, вроде даже и работает.. но как-то странновато (может у меня компьютер уже просто тупит)... А как еще скрыть якорь в адресной строке браузера?
|
Часовой пояс GMT +3, время: 13:12. |