Объясню, что имею в виду.
У меня есть меню, которое складывается.
Оно нестандартное и состоит из двух частей.
На экранах до 1140px при скролле должна показываться одно меню, на меньшем - другая часть.
Я создал две функции
Первая
function forMobile(){
$('body').css('padding-top', 100);
categoriesWrap.css('display', 'none');
$(window).on('scroll', function(){
console.log('mobile');
if($(window).scrollTop() > headerMainHeight + 10) {
categoriesWrap.hide();
}else if($(window).scrollTop() < headerMainHeight + 10){
headerMain.removeClass('fixed');
categoriesWrap.hide();
}
if($(window).scrollTop() > headerMainHeight + 100) {
headerMain.addClass('fixed');
}
});
}
И вторая
function forDesktop(){
categoriesWrap.css('display', 'block');
$(window).on('scroll', function(){
console.log('desktop');
if($(window).scrollTop() < headerMainHeight + 10){
categoriesWrap.removeClass('fixed');
categoriesWrap.css('display', 'block');
categoriesWrap.css('opacity', 1);
}
if($(window).scrollTop() > headerMainHeight + 10) {
categoriesWrap.css('opacity', 0);
categoriesWrap.css('display', 'block');
}
if($(window).scrollTop() > headerMainHeight + 100) {
categoriesWrap.addClass('fixed');
categoriesWrap.css('opacity', 1);
}
});
}
И сам код
if($(window).width() < windowSize) {
forMobile();
}
if($(window).width() > windowSize){
forDesktop();
}
$(window).resize(function(){
if($(window).width() < windowSize) {
forMobile();
}else{
forDesktop();
}
});
Так вот, при открытии сайта в браузер скроллится меню, в соответствии с разрешением экрана.
А при ресайзе, когда перехожу за точку 1140 в ту или иную сторону, то на десктопе скроллится меню для телефона.
Я в каждую из функций прописал console.log('menu') и соответственно desktop
Вот ссылка на сайт
site
При открытии браузера с разрешением до 1140 или за - в консоли выводиться только одно название из console.log()
Как только перехожу за рубикон, то выводится обе.
Как это можно объяснить.
Я уверен, что специалистам это очевидно.
Поделиться решением.
Заранее благодарен.