У меня есть веб-сайт с палкой в верхний заголовок, когда прокрутка, половина моего заголовка исчезает, а меню - сверху. навигация использует хеш, нажав на ссылку моего меню, страница прокручивается до связанного #. Я добавил jscript, чтобы вычислить высоту моего stickyheader, чтобы добавить эту высоту в мою #link, чтобы моя цель отображалась прямо под моим меню. он отлично работает на Chrome & safari, но в Firefox есть проблема, высота не добавляется, поэтому мой заголовок отображается под меню. И при нажатии на "назад к началу" позиция неправильная, есть смещение... только на firefox.
Я не знаю, понимаете ли вы, что я имею в виду, так что вот jsfiddle, чтобы увидеть это в действии:
вот мой js:
$(document).ready(function () {
$('a[href^="#"]').bind('click.smoothscroll', function (e) {
e.preventDefault();
var target = this.hash,
$target = $(target);
var offset;
if($('#stickyheader').css('position') == 'relative'){
offset = $('#stickyheader').outerHeight(true)*2;
}else{
offset = $('#stickyheader').outerHeight(true);
}
$('html, body').stop().animate({
'scrollTop': $target.offset().top - offset
//--OFFSET--//
}, 1500, 'swing', function () {
window.location.hash = target;
});
});
});
$(function () {
// Check the initial Poistion of the Sticky Header
var stickyHeaderTop = $('#stickyheader').offset().top;
$(window).scroll(function () {
if ($(window).scrollTop() === stickyHeaderTop+1) {
$('#stickyheader').hide();
console.log('p');
}
if ($(window).scrollTop() > stickyHeaderTop) {
$('#stickyheader').fadeIn(500).css('position','fixed');
$('#stickyalias').css('display', 'block');
var mT = $('#stickyheader').css('height');
$('#stickyheader').next('.post').css('marginTop', mT);
}else{
$('#stickyheader').css({
position: 'relative',
});
$('#stickyheader').next('.post').css('marginTop', '0');
}
});
});
может ли кто-нибудь помочь мне в этом? Я не знаю, что я делаю неправильно,
большое спасибо за вашу помощь,
Попробуйте использовать это для анимации прокрутки
$('html, body').animate({
'scrollTop': $target.offset().top - offset
//--OFFSET--//
}, 1500);