Проблема в следующем. На сайте реализованы плавные якорные ссылки через https://github.com/cferdinandi/smooth-scroll Я дилетант в джаваскрипте и jQuery, поэтому не могли бы вы, пожалуйста, подсказать, каким образом можно реализовать это не через hash или как убрать "#"?
Сделал минималистический пример на jQuery. В ссылку через # записывается id блока, к которому нужно перейти, однако в URL хеши не добавляются. Работает для любой ссылки на странице, в которой указан id блока для перехода.
// Page a Link Smooth Scrolling
$("[href^='#']").click(function() {
var idtop = $($(this).attr("href")).offset().top;
$('html,body').animate(
// Time animation
{scrollTop: idtop}, 500);
return false;
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<style>
div{height:100vh}
#block1{background: #000}
#block1 a{color: #fff}
</style>
<div id="block1">
<a href="#block2">скролл к следующему блоку</a>
</div>
<div id="block2">
<a href="#block1">скролл к предыдущему блоку</a>
</div>
Этот плагин специально построен таким образом, чтобы обрабатывать переход по кликам сохраняя их в историю. Если вам нужен просто плавный переход, может проще сделать его самому? Вот код, это очень просто:
$('body').on('click', '.smooth-scroll-class', function(){
//по href ищем элемент с нужным id и определяем его позицию
pos = $( $(this).attr('href') ).offset();
if (pos) {
//скролим на эту позицию
$("html, body").animate({scrollTop: pos.top}, 600);
//отключаем стандартный переход по ссылке
return false;
}
})
Так можно сделать ссылку не на <a name='hashlink'> a на <.. id='hashlink'> Те не надо создавать якоря, достаточно прописать id нужному элементу.
Можно так-же и искать якорь
$('body').on('click', '.smooth-scroll-class', function(){
//по href ищем якорь с нужным именем
pos = $('a[name=' + $(this).attr('href').replace(/^#/,'') + ']').offset();
if (pos) {
//скролим на эту позицию
$("html, body").animate({scrollTop: pos.top}, 600);
//отключаем стандартный переход по ссылке
return false;
}
})
Живой тест:
$('body').on('click', '.smooth-scroll', function() {
pos = $('a[name=' + $(this).attr('href').replace(/^#/,'') + ']').offset();
if (pos) {
$("html, body").animate({
scrollTop: pos.top
}, 600);
return false;
}
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a href="#bottom" class='smooth-scroll'>скролл вниз</a>
<div style="height:2000px"></div>
<a name='bottom'></a>
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости