У меня была небольшая проблема из-за какого-то плагина markdownify, в любом случае мне пришлось искать цель ссылки, поэтому я использовал эту работу вокруг.Это на самом деле работает для различных селекторов элементов, в моем случае моя ссылка была <a href="#target">some text</a>
, а моя реальная цель была <a href="target"></a>
для этого конкретного случая, я могу дать вам такое решение:
var scrollAnchorSamePage = function() {
$('a[href^="#"]').click(function() {
event.preventDefault();
var id = $(this).attr("href");
// okay lets remove the hashtag in front:
var target = $('a[href^="' + id.substring(1, id.length) + '"]');
// and I need a little offset due to a fixed sticky header by 140
$('html, body').animate({ scrollTop: target.offset().top - (160) }, 1000);
});
}
scrollAnchorSamePage();
PS: Iиспользуйте следующий импорт пакетов jQuery, вы можете добавить их прямо перед закрывающим тегом </body>
html в вашей DOM.
<!-- Latest minified jQuery -->
<script src="https://code.jquery.com/jquery-2.2.4.min.js" integrity="sha256-BbhdlvQf/xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44=" crossorigin="anonymous"></script>
<!-- Latest compiled and minified bootstrap JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js" integrity="sha384-0mSbJDEHialfmuBBQP6A4Qrprq5OVfW37PRR3j5ELqxss1yVqOtnepnHVP9aJ7xS" crossorigin="anonymous"></script>