Вопрос по JS

123 4
PA
На сайте с 12.02.2016
Offline
24
#11

а точно ли нужны костыли с jquery и яваскриптом? может обычного css хватит.

бездумный копи-паст в нужном направлении:


@media screen and (min-width: 1024px) {
}

@media screen and (max-width: 699px) and (min-width: 520px) {
}

@media screen and (orientation: portrait) {
}

@media screen and (orientation: landscape) and (min-width: 1024px) {
}

дока: http://htmlbook.ru/css/value/media

. . .
Z0
На сайте с 03.09.2009
Offline
813
#12
ps axf:
а точно ли нужны костыли с jquery и яваскриптом? может обычного css хватит.

document.documentElement.scrollTop как в css сделать? :) А так да...

D
На сайте с 28.06.2008
Offline
1108
#13

Че то не пашет, есть ошибка?

		$(window).resize(function(){ 

if($(window).width()>=1024 ) { manamana(); }
});
window.addEventListener('orientationchange', function() {
if($(window).width()>=1024 ) { manamana(); }
}, false);
$(document).ready(function(){
if($(window).width()>=1024 ) { manamana(); }
});
function manamana(){
if(!sTop3) {
sTop3 = jQuery('#tabs-menu').offset().top;
}
if (document.documentElement.scrollTop > sTop2 || self.pageYOffset > sTop2) {
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", "747px");
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 < sTop2 || self.pageYOffset < sTop2) {
jQuery('#tabs-menu').css("position", "static");
}
if (self.pageYOffset + document.documentElement.clientHeight > document.documentElement.scrollHeight) {
jQuery('#tabs-menu').css("position", "static");
}
}
Z0
На сайте с 03.09.2009
Offline
813
#14
Dram:
Че то не пашет, есть ошибка?

sTop2 не задан, вы его с sTop3 не перепутали? Замените sTop2 на sTop3, у меня работает :)

Только вам, чтобы при <1024 все работало, нужно другую функцию написать, чтобы вернуть все стили обратно у tabs-menu..

D
На сайте с 28.06.2008
Offline
1108
#15

TOP 2 задан выше, вот так код работает как нужно но только на деспопах, а вот на мобилах портит всю картину

if(!sTop3) {
sTop3 = jQuery('#tabs-menu').offset().top;
}
if (document.documentElement.scrollTop > sTop2 || self.pageYOffset > sTop2) {
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", "747px");
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 < sTop2 || self.pageYOffset < sTop2) {
jQuery('#tabs-menu').css("position", "static");
}
if (self.pageYOffset + document.documentElement.clientHeight > document.documentElement.scrollHeight) {
jQuery('#tabs-menu').css("position", "static");
}
Z0
На сайте с 03.09.2009
Offline
813
#16
Dram:
TOP 2 задан выше, вот так код работает как нужно но только на деспопах, а вот на мобилах портит всю картину

Вам, чтобы при <1024 все работало, нужно другую функцию написать, чтобы вернуть все стили обратно у tabs-menu..

D
На сайте с 28.06.2008
Offline
1108
#17

Нет мне нужно чтобы меню НЕ ПЛАВАЛО при разрешении МЕНЕЕ 1024

Ваш код я проверил при разных разрешениях - он вообще не работет.

Z0
На сайте с 03.09.2009
Offline
813
#18
Dram:
Нет мне нужно чтобы меню НЕ ПЛАВАЛО при разрешении МЕНЕЕ 1024

Ваш код я проверил при разных разрешениях - он вообще не работет.

<script>

$(window).resize(function(){

if($(window).width()>=1024 ) { manamana(); }

});

window.addEventListener('orientationchange', function() {

if($(window).width()>=1024 ) { manamana(); }

}, false);

$(document).ready(function(){

if($(window).width()>=1024 ) { manamana(); }

});

function manamana(){

$('body').html( $(window).width() );

}

</script>

У меня работает. Ищите проблему в самом коде, который вы вставили в функцию manamana()

Так чтобы не плавало, надо другое условие:

$(window).resize(function(){

if($(window).width()<1024 ) { jQuery('#tabs-menu').css("position", "static"); }

});

D
На сайте с 28.06.2008
Offline
1108
#19

Сделал так:

		if(!sTop3) {
sTop3 = jQuery('#tabs-menu').offset().top;
}
if (document.documentElement.scrollTop > sTop2 || self.pageYOffset > sTop2) {
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", "747px");
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 < sTop2 || self.pageYOffset < sTop2) {
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", "static"); }
});

Меню плавает на дексопах как и задумано - все хорошо, но блин так же продолжает плавать и на мобильниках.

Z0
На сайте с 03.09.2009
Offline
813
#20


$(window).resize(function(){
if($(window).width()>=1024 ) { jQuery('#tabs-menu').css("position", "fixed"); }
else { jQuery('#tabs-menu').css("position", "static"); }
});
window.addEventListener('orientationchange', function() {
if($(window).width()>=1024 ) { jQuery('#tabs-menu').css("position", "fixed"); }
else { jQuery('#tabs-menu').css("position", "static"); }
}, false);
$(document).ready(function(){
if($(window).width()>=1024 ) { jQuery('#tabs-menu').css("position", "fixed"); }
else { jQuery('#tabs-menu').css("position", "static"); }
});
123 4

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