https://jsfiddle.net/9o73880z/ - возможно, fiddle поможет понять, что я буду писать здесь: )
Я делаю фиксированное (но положение: абсолютное, потому что в итоге оно очень длинное и мне нужно его прокручивать :)) меню на моей странице.
Он расширяется при нажатии (V рядом с NAV). Он идет вместе с пользователем, когда он прокручивает страницу.
$(window).scroll(function() {
var sctre = $(window).scrollTop();
if(sctre >= 95) {
if($(".trefl-nav-switch").hasClass("trefl-zwiniete")) {$(".trefl-head-top").css({"padding-top":"40px","top":sctre-41,"background":"#fff"});}
if($(".trefl-nav-switch").hasClass("trefl-rozwiniete") && sctre < menu_top_pos) {$(".trefl-head-top").css({"padding-top":"40x","top":sctre-41,"background":"#fff"});}
}
if(sctre < 95) {
$(".trefl-head-top").css({"padding-top":"0px","top":"75px"});
}
});
Когда позиция прокрутки превышает 95, она идет с пользователем (значение только для совместимости страниц, над которой я работаю), НО только когда кнопка навигации свернута (hasClass('zwiniete')). Когда он развернут (hasclass(rozwiniete)) он останавливается, поэтому пользователь может прокручивать меню, а не саму страницу).
А теперь мой вопрос, которого я действительно не знаю, как достичь:
- Can I somehow force browser to scroll only what's inside "trefl-head-top" when it is unfolded
- If I can't after looking at my code, I've tried to do something like - Record position(top property) of trefl-head-top when I click to unfold it (var menu_top_pos), and IF menu is unfolded AND scroll position is < smaller than menu_top_pos, change the "top" css. But unfortunately I can't see the effect :(
if($(".trefl-nav-switch").hasClass("trefl-rozwiniete") && sctre < menu_top_pos) {$(".trefl-head-top").css({"padding-top":"40x","top":sctre-41,"background":"#fff"});}
Это код ответственный.
Буду признателен за любую помощь, спасибо :)