Помогите с JS

D
На сайте с 28.06.2008
Offline
1101
984

/////Как вот эту фигню обернуть в if($(window).width()>=1024

if(!sTop3) {
sTop3 = jQuery('#tabs-menu').offset().top;
}
if (document.documentElement.scrollTop > sTop3 || self.pageYOffset > sTop3) {
jQuery('#tabs-menu').css("position", "fixed");
jQuery('#tabs-menu').css("top", "0px");
jQuery('#tabs-menu').css("margin-top", "0px");
jQuery('#tabs-menu').css("z-index", "100");
jQuery('#tabs-menu').css("max-width", "735px");
jQuery('#tabs-menu .active').css("border-bottom-color", "#E86500");
jQuery('#tabs-menu li').css("border-top-left-radius", "0px");
jQuery('#tabs-menu li').css("border-top-right-radius", "0px");
} else if (document.documentElement.scrollTop < sTop3 || self.pageYOffset < sTop3) {
jQuery('#tabs-menu').css("position", "static");
}
if (self.pageYOffset + document.documentElement.clientHeight > document.documentElement.scrollHeight) {
jQuery('#tabs-menu').css("position", "static");
}

//////////А вот это в else if

$(window).resize(function(){ ///наверное если это уже в else if то resize(function и window).width не нужно?
if($(window).width()<=1024 ) {
jQuery('#tabs-menu').css("position", "fixed");
jQuery('#tabs-menu').css("bottom", "0px");
jQuery('#tabs-menu').css("left", "0px");
jQuery('#tabs-menu').css("z-index", "100");
jQuery('#tabs-menu').css("width", "100%");
jQuery('#tabs-menu .active').css("margin-bottom", "0px");
jQuery('#tabs-menu li').css("font-size", "16px");
jQuery('#tabs-menu').css("max-width", "100%");
}
});

Задача то что if($(window).width()>=1024 показывать при разрешении выше 1024, а если меньше то то что в else if

Gerga
На сайте с 02.08.2015
Offline
94
#1

Dram,


$(document).ready( fStartTabs );
$(window).on( 'resize', fStartTabs );


function fStartTabs() {

if ( $(window).width() >= 1024 ) {

if(!sTop3) {
sTop3 = jQuery('#tabs-menu').offset().top;
}
if (document.documentElement.scrollTop > sTop3 || self.pageYOffset > sTop3) {
jQuery('#tabs-menu').css("position", "fixed");
jQuery('#tabs-menu').css("top", "0px");
jQuery('#tabs-menu').css("margin-top", "0px");
jQuery('#tabs-menu').css("z-index", "100");
jQuery('#tabs-menu').css("max-width", "735px");
jQuery('#tabs-menu .active').css("border-bottom-color", "#E86500");
jQuery('#tabs-menu li').css("border-top-left-radius", "0px");
jQuery('#tabs-menu li').css("border-top-right-radius", "0px");
} else if (document.documentElement.scrollTop < sTop3 || self.pageYOffset < sTop3) {
jQuery('#tabs-menu').css("position", "static");
}
if (self.pageYOffset + document.documentElement.clientHeight > document.documentElement.scrollHeight) {
jQuery('#tabs-menu').css("position", "static");
}

} else {
jQuery('#tabs-menu').css("position", "fixed");
jQuery('#tabs-menu').css("bottom", "0px");
jQuery('#tabs-menu').css("left", "0px");
jQuery('#tabs-menu').css("z-index", "100");
jQuery('#tabs-menu').css("width", "100%");
jQuery('#tabs-menu .active').css("margin-bottom", "0px");
jQuery('#tabs-menu li').css("font-size", "16px");
jQuery('#tabs-menu').css("max-width", "100%");
}

});
Dram:
jQuery('#tabs-menu').css("position", "fixed");
jQuery('#tabs-menu').css("top", "0px");
jQuery('#tabs-menu').css("margin-top", "0px");
jQuery('#tabs-menu').css("z-index", "100");
jQuery('#tabs-menu').css("max-width", "735px");
jQuery('#tabs-menu .active').css("border-bottom-color", "#E86500");
jQuery('#tabs-menu li').css("border-top-left-radius", "0px");
jQuery('#tabs-menu li').css("border-top-right-radius", "0px");

вместо этих правил, лучше класс ставить addclass.

S
На сайте с 30.09.2016
Offline
469
#2
Gerga:
вместо этих правил, лучше класс ставить

Именно так и надо.

Отпилю лишнее, прикручу нужное, выправлю кривое. Вытравлю вредителей.
D
На сайте с 28.06.2008
Offline
1101
#3

Все ли скобки закрыты - че то ошибку выдает?

Gerga
На сайте с 02.08.2015
Offline
94
#4
Sitealert:
Именно так и надо.

да, именно так, а не так:

jQuery('#tabs-menu').addClass('your_class');

#tabs-menu.your_class {
position: fixed;
top: 0px;
margin-top: 0px;
z-index: 100;
max-width: 735px;
}
#tabs-menu.your_class .active { border-bottom-color: #E86500; }
#tabs-menu.your_class { border-top-left-radius: 0px; border-top-right-radius: 0px; }

или так:

jQuery('#tabs-menu').css({"position": "fixed", "top": 0, "margin-top": 0, "z-index": 100, "max-width": 735});

Sitealert, надо именно минимум 5 раз находит один и тот селектор в DOM и столько же раз вызывать один и тот же метод. :)



---------- Добавлено 14.07.2017 в 12:22 ----------

Dram:
Все ли скобки закрыты - че то ошибку выдает?

в конце ошибка, вместо }) , должно быть }.

D
На сайте с 28.06.2008
Offline
1101
#5

Вот мой код полностью, все равно ошибку выдает, что не так?

var sTop, sTop2, sTop3;

jQuery(document).ready(function() {
jQuery(document).scroll(function() {
// A
if(!sTop) {
sTop = jQuery('#advleft').offset().top + 100;
}
if (document.documentElement.scrollTop > sTop || self.pageYOffset > sTop) {
jQuery('#advleft').css("position", "fixed");
jQuery('#advleft').css("top", "0px");
} else if (document.documentElement.scrollTop < sTop || self.pageYOffset < sTop) {
jQuery('#advleft').css("position", "static");
}
if (self.pageYOffset + document.documentElement.clientHeight > document.documentElement.scrollHeight) {
jQuery('#advleft').css("position", "static");
}
// B
if(!sTop2) {
sTop2 = jQuery('#advright').offset().top + 100;
}
if (document.documentElement.scrollTop > sTop2 || self.pageYOffset > sTop2) {
jQuery('#advright').css("position", "fixed");
jQuery('#advright').css("top", "0px");
} else if (document.documentElement.scrollTop < sTop2 || self.pageYOffset < sTop2) {
jQuery('#advright').css("position", "static");
}
if (self.pageYOffset + document.documentElement.clientHeight > document.documentElement.scrollHeight) {
jQuery('#advright').css("position", "static");
}




if(!sTop3) {
$(document).ready( fStartTabs );
$(window).on( 'resize', fStartTabs );


function fStartTabs() {

if ( $(window).width() >= 1024 ) {

if(!sTop3) {
sTop3 = jQuery('#tabs-menu').offset().top;
}
if (document.documentElement.scrollTop > sTop3 || self.pageYOffset > sTop3) {
jQuery('#tabs-menu').css("position", "fixed");
jQuery('#tabs-menu').css("top", "0px");
jQuery('#tabs-menu').css("margin-top", "0px");
jQuery('#tabs-menu').css("z-index", "100");
jQuery('#tabs-menu').css("max-width", "735px");
jQuery('#tabs-menu .active').css("border-bottom-color", "#E86500");
jQuery('#tabs-menu li').css("border-top-left-radius", "0px");
jQuery('#tabs-menu li').css("border-top-right-radius", "0px");
} else if (document.documentElement.scrollTop < sTop3 || self.pageYOffset < sTop3) {
jQuery('#tabs-menu').css("position", "static");
}
if (self.pageYOffset + document.documentElement.clientHeight > document.documentElement.scrollHeight) {
jQuery('#tabs-menu').css("position", "static");
}

} else {
jQuery('#tabs-menu').css("position", "fixed");
jQuery('#tabs-menu').css("bottom", "0px");
jQuery('#tabs-menu').css("left", "0px");
jQuery('#tabs-menu').css("z-index", "100");
jQuery('#tabs-menu').css("width", "100%");
jQuery('#tabs-menu .active').css("margin-bottom", "0px");
jQuery('#tabs-menu li').css("font-size", "16px");
jQuery('#tabs-menu').css("max-width", "100%");
}

};




});
});
dma84
На сайте с 21.04.2009
Offline
168
#6
Dram:
Вот мой код полностью, все равно ошибку выдает, что не так?


var sTop, sTop2, sTop3;

jQuery(document).ready(function() {
jQuery(document).scroll(function() {
// A
if(!sTop) {
sTop = jQuery('#advleft').offset().top + 100;
}
if (document.documentElement.scrollTop > sTop || self.pageYOffset > sTop) {
jQuery('#advleft').css("position", "fixed");
jQuery('#advleft').css("top", "0px");
} else if (document.documentElement.scrollTop < sTop || self.pageYOffset < sTop) {
jQuery('#advleft').css("position", "static");
}
if (self.pageYOffset + document.documentElement.clientHeight > document.documentElement.scrollHeight) {
jQuery('#advleft').css("position", "static");
}
// B
if(!sTop2) {
sTop2 = jQuery('#advright').offset().top + 100;
}
if (document.documentElement.scrollTop > sTop2 || self.pageYOffset > sTop2) {
jQuery('#advright').css("position", "fixed");
jQuery('#advright').css("top", "0px");
} else if (document.documentElement.scrollTop < sTop2 || self.pageYOffset < sTop2) {
jQuery('#advright').css("position", "static");
}
if (self.pageYOffset + document.documentElement.clientHeight > document.documentElement.scrollHeight) {
jQuery('#advright').css("position", "static");
}




if(!sTop3) {
$(document).ready( fStartTabs );
$(window).on( 'resize', fStartTabs );
}

function fStartTabs() {

if ( $(window).width() >= 1024 ) {

if(!sTop3) {
sTop3 = jQuery('#tabs-menu').offset().top;
}
if (document.documentElement.scrollTop > sTop3 || self.pageYOffset > sTop3) {
jQuery('#tabs-menu').css("position", "fixed");
jQuery('#tabs-menu').css("top", "0px");
jQuery('#tabs-menu').css("margin-top", "0px");
jQuery('#tabs-menu').css("z-index", "100");
jQuery('#tabs-menu').css("max-width", "735px");
jQuery('#tabs-menu .active').css("border-bottom-color", "#E86500");
jQuery('#tabs-menu li').css("border-top-left-radius", "0px");
jQuery('#tabs-menu li').css("border-top-right-radius", "0px");
} else if (document.documentElement.scrollTop < sTop3 || self.pageYOffset < sTop3) {
jQuery('#tabs-menu').css("position", "static");
}
if (self.pageYOffset + document.documentElement.clientHeight > document.documentElement.scrollHeight) {
jQuery('#tabs-menu').css("position", "static");
}

} else {
jQuery('#tabs-menu').css("position", "fixed");
jQuery('#tabs-menu').css("bottom", "0px");
jQuery('#tabs-menu').css("left", "0px");
jQuery('#tabs-menu').css("z-index", "100");
jQuery('#tabs-menu').css("width", "100%");
jQuery('#tabs-menu .active').css("margin-bottom", "0px");
jQuery('#tabs-menu li').css("font-size", "16px");
jQuery('#tabs-menu').css("max-width", "100%");
}

};




});
});

Если вкратце, то в этом условии if(!sTop3) закрывающую фигурную скобку пропустили.

D
На сайте с 28.06.2008
Offline
1101
#7

dma84, к сожалению на дескопах меню не плавает, вообще никакой реакции.

Вот с таким кодом плавает, но с мобилами косячно

var sTop, sTop2, sTop3;

jQuery(document).ready(function() {
jQuery(document).scroll(function() {
// A
if(!sTop) {
sTop = jQuery('#advleft').offset().top + 100;
}
if (document.documentElement.scrollTop > sTop || self.pageYOffset > sTop) {
jQuery('#advleft').css("position", "fixed");
jQuery('#advleft').css("top", "0px");
} else if (document.documentElement.scrollTop < sTop || self.pageYOffset < sTop) {
jQuery('#advleft').css("position", "static");
}
if (self.pageYOffset + document.documentElement.clientHeight > document.documentElement.scrollHeight) {
jQuery('#advleft').css("position", "static");
}
// B
if(!sTop2) {
sTop2 = jQuery('#advright').offset().top + 100;
}
if (document.documentElement.scrollTop > sTop2 || self.pageYOffset > sTop2) {
jQuery('#advright').css("position", "fixed");
jQuery('#advright').css("top", "0px");
} else if (document.documentElement.scrollTop < sTop2 || self.pageYOffset < sTop2) {
jQuery('#advright').css("position", "static");
}
if (self.pageYOffset + document.documentElement.clientHeight > document.documentElement.scrollHeight) {
jQuery('#advright').css("position", "static");
}


if(!sTop3) {
sTop3 = jQuery('#tabs-menu').offset().top;
}
if (document.documentElement.scrollTop > sTop3 || self.pageYOffset > sTop3) {
jQuery('#tabs-menu').css("position", "fixed");
jQuery('#tabs-menu').css("top", "0px");
jQuery('#tabs-menu').css("margin-top", "0px");
jQuery('#tabs-menu').css("z-index", "100");
jQuery('#tabs-menu').css("max-width", "735px");
jQuery('#tabs-menu .active').css("border-bottom-color", "#E86500");
jQuery('#tabs-menu li').css("border-top-left-radius", "0px");
jQuery('#tabs-menu li').css("border-top-right-radius", "0px");
} else if (document.documentElement.scrollTop < sTop3 || self.pageYOffset < sTop3) {
jQuery('#tabs-menu').css("position", "static");
}
if (self.pageYOffset + document.documentElement.clientHeight > document.documentElement.scrollHeight) {
jQuery('#tabs-menu').css("position", "static");
}
$(window).resize(function(){
if($(window).width()<=1024 ) {
jQuery('#tabs-menu').css("position", "fixed");
jQuery('#tabs-menu').css("bottom", "0px");
jQuery('#tabs-menu').css("left", "0px");
jQuery('#tabs-menu').css("z-index", "100");
jQuery('#tabs-menu').css("width", "100%");
jQuery('#tabs-menu .active').css("margin-bottom", "0px");
jQuery('#tabs-menu li').css("font-size", "16px");
jQuery('#tabs-menu').css("max-width", "100%");
}
});


});
});

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий