В настоящее время разрабатывает сайт Wordpress с помощью плагина Easy Smooth Scroll Links. Я также использую SiteOrigin Page Builder с виджетом «Вкладки». Виджет «Вкладки» изменяет URL-адрес в адресной строке при нажатии на разные вкладки. Пример: example.com/#tab1, example.com/#tab2 et c. Моя проблема заключается в том, что страница прыгает, когда я нажимаю на вкладки. Но происходит только в том случае, если вкладки находятся в середине экрана, но не в верхней или нижней части экрана.
Вот код, который использует плагин с плавной прокруткой:
<script type="text/javascript">
jQuery.noConflict();
(function($){
var jump=function(e)
{
if (e){
var target = $(this).attr("href");
}else{
var target = location.hash;
}
var scrollToPosition = $(target).offset().top - 90;
$('html,body').animate({scrollTop: scrollToPosition },900 ,'easeInSine' );
}
$('html, body').hide()
$(document).ready(function()
{
$("area[href*=\\#],a[href*=\\#]:not([href=\\#]):not([href^='\\#tab']):not([href^='\\#quicktab']):not([href^='\\#pane']):not([href^='#dryer']):not([href^='#pet']):not([href^='#tile']):not([href='#upholstery-cleaning']):not([href='#pet-odor-removal']):not([href='#tile-grout-cleaning'])").bind("click", jump);
if (location.hash){
setTimeout(function(){
$('html, body').scrollTop(0).show()
jump();
}, 0);
}else{
$('html, body').show()
}
});
})(jQuery);
</script>
<?php } else { ?>
<script type="text/javascript">
jQuery.noConflict();
(function( $ ) {
$(function() {
// More code using $ as alias to jQuery
$("area[href*=\\#],a[href*=\\#]:not([href=\\#]):not([href^='\\#tab']):not([href^='\\#quicktab']):not([href^='\\#pane'])<?php if($essl_exclude_begin) echo $essl_exclude_begin; ?><?php if($essl_exclude_match) echo $essl_exclude_match; ?>").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 - <?php if (get_option('essl_offset')!='') {echo get_option('essl_offset');} else {echo '20';} ?>
},<?php if (get_option('essl_speed')!='') {echo get_option('essl_speed');} else {echo '900';} ?> ,'<?php echo get_option('essl_easing','easeInQuint');?>');
return false;
}
}
});
});
})(jQuery);
</script>
<?php }
}
}
endif;
?>
Как вы видите, я добавил некоторые исключения для якорей или хэшей. Я не хочу, чтобы происходило действие плавной прокрутки. Он отлично работает в Firefox, но не в Chrome по некоторым причинам. Я очищал кэш несколько раз, чтобы убедиться, что это не так.
Любая помощь будет принята с благодарностью. Спасибо!