У меня есть заголовок, который отображается в прокрутке и фиксирован, но на странице продуктов я также хочу, чтобы навигация фиксировалась, когда она прокручивается до определенной точки. Проблема, с которой я сталкиваюсь, заключается в том, что они являются одним и тем же событием. Поэтому я включаю навигационный код с кодом заголовка в одно и то же событие, но это означает, что когда я нахожусь на страницах, отличных от страницы продуктов, действие больше не работает, так как оно не может найти элементы на странице продукта. Если я делаю их отдельно, он конфликтует с одним и тем же событием.конфликт с событием прокрутки в jQuery
Я могу сделать это с помощью скрипта на странице с использованием кода на стороне сервера, но мне было интересно, есть ли способ обойти его, если он все еще находится в JS-файле.
height2 = $('#product_nav_cont').offset().top;
header2 = $('#scroll_header_cont').outerHeight();
empty_div = "<div class='empty_div' style='width:100%; height:"+header2+"px; display:block;' ></div>";
$(window).scroll(function() {
height = $('#main_header_nav_cont').outerHeight();
scroll = $(this).scrollTop();
if(scroll > height) {
$('#scroll_header_cont').fadeIn(400);
} else {
$('#scroll_header_cont').stop().hide();
}
scroll2 = $(this).scrollTop();
pos2 = height2-header2
//$('#scroll_logo').text(height)
if(scroll2 > pos2) {
$('#product_nav_cont').css({'position':'fixed','top':header2,'width':'100%'});
if(!$('.empty_div').length) {
$('#main_header_nav_cont').after(empty_div);
}
} else {
$('#product_nav_cont').css({'position':'static','top':'0'});
$(".empty_div").remove();
}
});
и header2 высота 2 не похожи на переменные, которые были определены. – Slime
извините, добавили их сейчас – Flashpacker