Сделал так:
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"); } });
Меню плавает на дексопах как и задумано - все хорошо, но блин так же продолжает плавать и на мобильниках.
Нет мне нужно чтобы меню НЕ ПЛАВАЛО при разрешении МЕНЕЕ 1024
Ваш код я проверил при разных разрешениях - он вообще не работет.
TOP 2 задан выше, вот так код работает как нужно но только на деспопах, а вот на мобилах портит всю картину
Че то не пашет, есть ошибка?
$(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"); } }
Большое спасибо за помощь, плюсануть че то не дает!
А 1024 куда? так?
$(window).resize(function(){
if($(window).width()>=1024 ) {manamana(); }
});
Это я все понял - но нельзя ли все эти условия объединить что-ли? чтобы мой код написать 1 раз?
Я далеко не кодер - это что получается три раза дублировать один и тот же код? А как-то более оптимально нельзя?
Zloy_Tip, спасибо, жаль плюсануть не дает, а можно еще одно условие добавить? Чтобы все это дело работало (плавало) только на разрешении экрана от 1024 и выше
Пробую использовать position: sticky; что не так?
https://codepen.io/anon/pen/wdXEXX---------- Добавлено 15.05.2017 в 19:47 ----------понял - position: sticky не поддерживается хромом :( Какие еще варианты плавающего блока чисто на css?