Доброго времени суток. Есть
сайт на вордпрессе и в нем возникла проблема с работой якорей в навигационном меню, грешил на этот фрагмент js
$( document ).on( 'click', '.js-smooth-scroll, .js-main-nav a', smoothScrollToAnchor);
$( '.side_dashboard_menu a' ).on( 'click', smoothScrollToAnchor);
function smoothScrollToAnchor( evt ) {
var anchor = MK.utils.detectAnchor( this );
var $this = $(evt.currentTarget);
var loc = window.location;
var currentPage = loc.origin + loc.pathname;
var href = $this.attr( 'href' );
var linkSplit = (href) ? href.split( '#' ) : '';
var hrefPage = linkSplit[0] ? linkSplit[0] : '';
var hrefHash = linkSplit[1] ? linkSplit[1] : '';
if( anchor.length ) {
if(hrefPage === currentPage || hrefPage === '') evt.preventDefault();
MK.utils.scrollToAnchor( anchor );
} else if( $this.attr( 'href' ) === '#' ) {
evt.preventDefault();
}
}
Действительно - после его отключения проблема решилась, но прокрутка к месту с якорем осуществляеться не очень красиво, я добавил код для плавной прокрутки
jQuery(document).ready(function(){
jQuery('a[href^="#"]').bind('click.smoothscroll',function (e) {
e.preventDefault();
var target = this.hash,
$target = $(target);
$('html, body').stop().animate({
'scrollTop': $target.offset().top
}, 600, 'swing', function () {
window.location.hash = target;
});
});
});
и проблема вернулась...