Ответ 1
Что-то вроде этой работы?
var targetOffset = $target.offset().top - 200;
Или захватите высоту элемента заголовка для дополнительного смещения.
var targetOffset = $target.offset().top - $("element").outerHeight(true);
У меня есть следующий прокрутки script, который отлично просматривает страницу, работает точно так же, как я тоже хочу.
$(function(){
$('a[href*=#]').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) {
var targetOffset = $target.offset().top;
$('html,body').animate({scrollTop: targetOffset}, 1000);
return false;
}
}
});
});
Тем не менее, мне нужно, чтобы игнорировать верхние говорят 200px, поскольку у меня есть фиксированный заголовок в верхней части страницы, по которому прокручивается контент.
Считаем, что когда я прокручиваю вверх, он прокручивает содержимое позади фиксированного заголовка, поэтому я не вижу его, поэтому мне нужно, чтобы он прокручивался чуть ниже заголовка.. так что обрабатывать нижнюю часть заголовка как вершину браузер, я полагаю....
Можно ли это сделать, поскольку это было бы очень удобно?
Большое спасибо за любую помощь
Что-то вроде этой работы?
var targetOffset = $target.offset().top - 200;
Или захватите высоту элемента заголовка для дополнительного смещения.
var targetOffset = $target.offset().top - $("element").outerHeight(true);
Вы можете использовать что-то вроде этого, если условие на код ur для этого
//check if the absolute position is below header
if ($('#IdOfTheScrollElement').position().top >= 200 ){
//scroll
}
else {
//do nothing
}
Код в порядке, вам просто нужно удалить высоту вашего фиксированного заголовка здесь, например, если это 200px. он будет работать отлично.
$('html,body').animate({scrollTop: (targetOffset().top)-200}, 1000);
Вы также можете проверить это при нажатии кнопки
$(function() {
$('a[href*=#]:not([href=#])').click(function() {
// Check height of the header and padding
var header_height = $('.header').outerHeight();
Снимите его со своего смещения
$('html,body').animate({scrollTop: (targetOffset().top) - header_height }, 1000);