change colour of sitetitel/menu on black row + sticky row
-
Re: Change nav and logo text to white/black when scrolling
Hi!
I use the code of this thread (white text on .darkrow / .blackrow) to change the color of my sitetitel and menu when scrolling over dark background (via jQuery) and combined it with sticky rows (via css).
Have a look here: https://www.maxbrunnert.de/portfolio-neu/But I have two problems I don't get solved:
when the sitetitel/menu changed to white once, it does not change back to black
the underline color of my menu does not change. for the underlining of sitetitel it works...Could someone help me? I guess there is an error because of the combination
This is the code I use in custom CSS:
.white { color: white!important; } /* Sticky Row */ .sticky-row { position: sticky; top: 0; } /* Dark Row + Sticky Row */ .sticky-blackrow { background: transparent; position: sticky; top: 0; }
And this in Custom HTML at bottom:
<!-- Dark Row --> <script> var offset = 50; var $blackRows; var $nav; window.laytheme.on("newpageshown", function(layoutObj, type, obj){ $blackRows = jQuery(".blackrow"); $nav = jQuery("nav a, .sitetitle span"); $nav.removeClass("white"); }); jQuery(document).on("scroll", function(){ $blackRows.each(function(){ var rect = this.getBoundingClientRect(); if(rect.top - offset < 0 && rect.bottom - offset > 0){ $nav.addClass("white"); return false; }else{ $nav.removeClass("white"); } }); }); </script> <!-- Dark Row + Sticky Row --> <script> var offset = 50; var $blackRows; var $nav; window.laytheme.on("newpageshown", function(layoutObj, type, obj){ $blackRows = jQuery(".sticky-blackrow"); $nav = jQuery("nav a, .sitetitle span"); $nav.removeClass("white"); }); jQuery(document).on("scroll", function(){ $blackRows.each(function(){ var rect = this.getBoundingClientRect(); if(rect.top - offset < 0 && rect.bottom - offset > 0){ $nav.addClass("white"); return false; }else{ $nav.removeClass("white"); } }); }); </script>
-
i think its because its sticky no?
rect.top is always 0 after it sticks to the top
u need to somehow change the logic of the code and the conditions to make it work with sticky
Before you post:
- When using a WordPress Cache plugin, disable it or clear your cache.
- Update Lay Theme and all Lay Theme Addons
- Disable all Plugins
- Go to Lay Options → Custom CSS & HTML, click "Turn Off All Custom Code", click "Save Changes"
This often solves issues you might run into
When you post:
- Post a link to where the problem is
- Does the problem happen on Chrome, Firefox, Safari or iPhone or Android?
- If the problem is difficult to explain, post screenshots / link to a video to explain it