Skip to content
  • Recent
  • Tags
  • Popular
  • Users
  • Search
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse

Lay Theme Forum

  1. Home
  2. Addons
  3. Different menu color for each slide on Fullscreen slider

Different menu color for each slide on Fullscreen slider

Scheduled Pinned Locked Moved Addons
sliderfullscreencolor
30 Posts 9 Posters 5.0k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • mariusjopenM mariusjopen

    Hey Antonio!

    I was able to reproduce the issue you were talking about.
    In fact you are right.

    When you activate the "Scrolling down in the last section scrolls down to the first section" and scroll down the .fp-viewing-0 changes to .fp-viewing-1 and does not change back to .fp-viewing-0 when you continue scrolling more down.

    That means that your custom CSS code does not work anymore:

    body.fp-viewing-0 .sitetitle-txt-inner span{
        color: pink;
    }
    body.fp-viewing-0 nav.primary a{
        color: pink;
    }
    

    What you can do is to activate the CSS also for the second slide. That is a compromise until we will have fixed that issue.

    body.fp-viewing-0 .sitetitle-txt-inner span,
    body.fp-viewing-1 .sitetitle-txt-inner span{
        color: pink;
    }
    
    body.fp-viewing-0 nav.primary a,
    body.fp-viewing-1 nav.primary a{
        color: pink;
    }
    

    I hope I could help!

    Let us know if you have further questions!

    All the best!

    Marius

    A Offline
    A Offline
    antonioprado
    wrote on last edited by
    #11

    @mariusjopen Hello Marius! Wow! That really helps! Thank you very much for the answer and the patient! Both of you!

    Have a nice week guys! :)

    1 Reply Last reply
    1
    • mariusjopenM Offline
      mariusjopenM Offline
      mariusjopen
      Global Moderator
      wrote on last edited by
      #12

      Hi Antonio!

      Great! Very happy to hear :-)

      www.mariusjopen.world

      1 Reply Last reply
      0
      • A Offline
        A Offline
        adam
        wrote on last edited by
        #13

        Hey guys, this post has been really helpful in getting the navbar and site title changing. I am trying to get the same change happening on text within a full-page slider however the only success I have had is when I target the universal setting of my text-formats.

        for example

        body.fp-viewing-1 .text .lay-textformat-parent > *, ._Default, ._Heading {
        color: #FFFFFF;
        }

        This works however it doesn't change out when landing on a different slide. Basically I need to target slide 1, 3, 5, 7 and 8.

        Any help would be great!

        Thank you

        1 Reply Last reply
        0
        • mariusjopenM Offline
          mariusjopenM Offline
          mariusjopen
          Global Moderator
          wrote on last edited by
          #14

          Hey Adam,

          it is a bit complicated to solve this issue without actually knowing the site.

          Can you provide us with a link?

          All the best!

          Marius

          www.mariusjopen.world

          1 Reply Last reply
          0
          • D Offline
            D Offline
            dgknkrpnr
            wrote on last edited by
            #15

            @mariusjopen said in Different menu color for each slide on Fullscreen slider:

            Hey Antonio!

            I was able to reproduce the issue you were talking about.
            In fact you are right.

            When you activate the "Scrolling down in the last section scrolls down to the first section" and scroll down the .fp-viewing-0 changes to .fp-viewing-1 and does not change back to .fp-viewing-0 when you continue scrolling more down.

            That means that your custom CSS code does not work anymore:

            body.fp-viewing-0 .sitetitle-txt-inner span{
                color: pink;
            }
            body.fp-viewing-0 nav.primary a{
                color: pink;
            }
            

            What you can do is to activate the CSS also for the second slide. That is a compromise until we will have fixed that issue.

            body.fp-viewing-0 .sitetitle-txt-inner span,
            body.fp-viewing-1 .sitetitle-txt-inner span{
                color: pink;
            }
            
            body.fp-viewing-0 nav.primary a,
            body.fp-viewing-1 nav.primary a{
                color: pink;
            }
            

            I hope I could help!

            Let us know if you have further questions!

            All the best!

            Marius

            @mariusjopen Is there a way to use this technique without using fp-viewing classes? I want to give a single class to all rows with same color using "Set HTML class & ID" option (lets name this class "blackbg"). And I want to change menu color when we are looking to blackbg slide (or when it have "active" class too)

            If I use fp-viewing classes I have to write different slug classes for every project in custom css because slides with black background isn't have same order. My projects have different slide count.

            1 Reply Last reply
            0
            • mariusjopenM Offline
              mariusjopenM Offline
              mariusjopen
              Global Moderator
              wrote on last edited by
              #16

              Hi dgknkrpnr!

              Well, if you want to have a specific color for a slide you need to use those classes. They are the only class which allows you to style this specific slide.

              But maybe that helps:
              0_1500457070092_Bildschirmfoto 2017-07-19 um 11.37.31.png

              Then you can call each row by its own.

              Best!

              Marius

              www.mariusjopen.world

              1 Reply Last reply
              0
              • Hayo GebauerH Offline
                Hayo GebauerH Offline
                Hayo Gebauer
                wrote on last edited by Hayo Gebauer
                #17

                Is it possible to delay the color switching?
                The first slide I have the menu/title in white (opposed to black like in the rest of the slides)
                When i scroll from the first slide, the white instantly switches to black, but it would be nice to have a 700ms delay (duration of the fullscreen slide)

                edit: adding "transition-delay: 700ms" does not work, it delays the appearance of the white font by 700ms, but not the switching to black.

                1 Reply Last reply
                0
                • mariusjopenM Offline
                  mariusjopenM Offline
                  mariusjopen
                  Global Moderator
                  wrote on last edited by
                  #18

                  Dear @Hayo-Gebauer
                  with jQuery you can add a wait or delay effect.

                  Best!

                  Marius

                  www.mariusjopen.world

                  1 Reply Last reply
                  0
                  • arminunruhA arminunruh

                    Oh, I changed the html markup a bit with the latest updates. This way it should work:

                    body.fp-viewing-0 .sitetitle-txt-inner span{
                        color: pink;
                    }
                    body.fp-viewing-0 nav.primary a{
                        color: pink;
                    }
                    
                    Hayo GebauerH Offline
                    Hayo GebauerH Offline
                    Hayo Gebauer
                    wrote on last edited by
                    #19

                    @arminunruh This doesn't work in the current version of Laytheme, am I right?

                    1 Reply Last reply
                    0
                    • mariusjopenM Offline
                      mariusjopenM Offline
                      mariusjopen
                      Global Moderator
                      wrote on last edited by
                      #20

                      Dear @MAN
                      you probably need to hack yourself through this…

                      Best!

                      Marius

                      www.mariusjopen.world

                      1 Reply Last reply
                      0
                      • D Offline
                        D Offline
                        dmlzr
                        wrote on last edited by
                        #21

                        Hi @mariusjopen, thanks for the support.
                        I'm also trying to make this work.
                        I want to adress a slide by its class and change the menu color if the slide is shown.
                        I tried this it by checking if it has the class "active" and I get a disturbingly random result. Sometimes it gets it right sometimes not.
                        Here's what I did:

                        <script>
                            var $blackRows;
                            var $nav;
                            var $title;
                        
                            Frontend.GlobalEvents.on("newpageshown", function(layoutObj, type, obj){
                                $blackRows = jQuery(".blackrow");
                                $nav = jQuery("nav");
                                $title = jQuery(".sitetitle-txt-inner");
                                $nav.removeClass("white");
                                $title.removeClass("white");        
                            });
                        
                            function colorchanger() {
                                    if($blackRows.hasClass("active")){
                                        $nav.addClass("white");
                                        $title.addClass("white");
                                        return false;
                                    }else{
                                        $nav.removeClass("white");
                                        $title.removeClass("white");
                                    }
                            }
                            jQuery(document).on("click", function(){
                              colorchanger();
                            });
                        </script>
                        

                        Did I miss something?
                        What's the best way to target the current slide?

                        Thanks!
                        David

                        1 Reply Last reply
                        0
                        • mariusjopenM Offline
                          mariusjopenM Offline
                          mariusjopen
                          Global Moderator
                          wrote on last edited by
                          #22

                          Dear @MAN
                          have a closer look in the docs about this :

                           jQuery(document).on("click", function(){
                                colorchanger();
                          });
                          

                          http://laytheme.com/documentation.html#custom-javascript

                          Best!

                          Marius

                          www.mariusjopen.world

                          1 Reply Last reply
                          0
                          • D Offline
                            D Offline
                            dmlzr
                            wrote on last edited by
                            #23

                            Tanks @mariusjopen for the qick response.

                            I think the problem is that the on("click") event happens before the slide changes. So the current .blackrow still has the class .active.
                            Is there a way to target the next slide?
                            Or alternatively run the on("click") after leaving the current slide?

                            Thanks
                            David

                            1 Reply Last reply
                            0
                            • mariusjopenM Offline
                              mariusjopenM Offline
                              mariusjopen
                              Global Moderator
                              wrote on last edited by
                              #24

                              Dear @dmlzr
                              what I meant is: This is not how you do an onclick call.
                              Have a look in the documentation link about click-binding-events.

                              Best!

                              Marius

                              www.mariusjopen.world

                              1 Reply Last reply
                              0
                              • D Offline
                                D Offline
                                dmlzr
                                wrote on last edited by
                                #25

                                Hi @mariusjopen,
                                I changed the onclick but I'm not sure if that's the problem.
                                I want to click on the current slide and if the next slide has the class blackrow the menu color should change. But the onclick is happening before the next slide has loaded. How can I check if the next slide has a certain class? Or else run the function after the next slide has loaded?

                                Greets!

                                1 Reply Last reply
                                0
                                • mariusjopenM Offline
                                  mariusjopenM Offline
                                  mariusjopen
                                  Global Moderator
                                  wrote on last edited by
                                  #26

                                  Dear @dmlzr
                                  ok, this is not an easy one if you are a beginner.
                                  For the fullscreen-slider we are using this library https://alvarotrigo.com/fullPage/. You can look in their Docs of how to access it to change its behaviour.
                                  Many wishes!
                                  Marius

                                  www.mariusjopen.world

                                  1 Reply Last reply
                                  0
                                  • D Offline
                                    D Offline
                                    dmlzr
                                    wrote on last edited by
                                    #27

                                    Hey @mariusjopen ,
                                    thanks a lot for the link. And yes this is a hard one for me.
                                    I saw this fullpage.js already and tried to use the 'fpAfterLoad' described here: http://laythemeforum.com:4567/topic/4437/change-colour-of-sitetitle-on-black-row-backgrounds
                                    But I didn't get it to work. Perhaps you could give me a hint.
                                    Anyway I found a (not very elegant) workaround. I run the colorchange funtion several times after the slider has been clicked. That pretty much does the trick.
                                    Greets!
                                    David

                                    1 Reply Last reply
                                    0
                                    • mariusjopenM Offline
                                      mariusjopenM Offline
                                      mariusjopen
                                      Global Moderator
                                      wrote on last edited by
                                      #28

                                      Dear @dmlzr
                                      there is not really a hint I can give you here.
                                      It is Javascript. Best is to ask a friend who knows Javascript :-)

                                      Best!

                                      Marius

                                      www.mariusjopen.world

                                      1 Reply Last reply
                                      0
                                      • G Offline
                                        G Offline
                                        g.chng
                                        wrote on last edited by
                                        #29

                                        Hello everybody,

                                        I tried changing my menu color on specific slides of a fullscreen slider with the code below but it didn't work. The page I tried it on is https://www.domaine-des-creisses.com/les-creisses/.

                                        The code is :

                                        CSS :
                                        @media (min-width: 601px) {
                                        /* White menu and logo on specific slides */
                                        body.slug-les-creisses.custom-slide-1 .sitetitle-txt-inner span,
                                        body.slug-les-creisses.custom-slide-1 nav.primary a,
                                        body.slug-les-creisses.custom-slide-1 nav.laynav a,
                                        body.slug-les-creisses.custom-slide-2 .sitetitle-txt-inner span,
                                        body.slug-les-creisses.custom-slide-2 nav.primary a,
                                        body.slug-les-creisses.custom-slide-2 nav.laynav a {
                                        color: white !important;
                                        border-bottom-color: white !important;
                                        }

                                        /* Instant transition for color and underline */
                                        .sitetitle-txt-inner span,
                                        nav.primary a,
                                        nav.laynav a {
                                            transition: color 0s ease, border-bottom-color 0s ease;
                                        }
                                        
                                        /* Underline for active menu items */
                                        nav.laynav .current-menu-item > a span {
                                            border-bottom-color: white !important;
                                        }
                                        

                                        }

                                        JS :
                                        <script>
                                        // Function to update the colors of the menu and logo
                                        function updateMenuColors() {
                                        const siteTitle = document.querySelector('.sitetitle.position-top.is-fixed.img img');
                                        const body = document.body;
                                        const navItems = document.querySelectorAll('nav.primary a, nav.laynav a');

                                        if (body.classList.contains('slug-les-creisses')) {
                                            const slides = document.querySelectorAll('.row');
                                            let isCustomSlideActive = false;
                                        
                                            // Check if a custom slide is active
                                            slides.forEach(slide => {
                                                if (slide.classList.contains('fp-section') && slide.classList.contains('fp-completely')) {
                                                    if (slide.classList.contains('custom-slide-1') || slide.classList.contains('custom-slide-2')) {
                                                        isCustomSlideActive = true;
                                                    }
                                                }
                                            });
                                        
                                            // Update colors based on the active slide
                                            if (isCustomSlideActive) {
                                                siteTitle.src = 'http://www.domaine-des-creisses.com/wp-content/uploads/2024/06/LOGO-BLANC-1.svg';
                                                navItems.forEach(el => {
                                                    el.style.color = 'white';
                                                    el.style.borderBottomColor = 'white'; // For underline
                                                });
                                            } else {
                                                siteTitle.src = 'http://www.domaine-des-creisses.com/wp-content/uploads/2024/06/TAMPON-ROUGE-SANG.svg';
                                                navItems.forEach(el => {
                                                    el.style.color = '';
                                                    el.style.borderBottomColor = ''; // Reset to original underline color
                                                });
                                            }
                                        }
                                        

                                        }

                                        // Initialize the updateMenuColors function on new page shown
                                        window.laytheme.on("newpageshown", function() {
                                        updateMenuColors();
                                        jQuery(document).on('mousewheel', function() {
                                        updateMenuColors();
                                        });
                                        jQuery('.fp-controlArrow, .fp-slidesNav a').on('click', function() {
                                        setTimeout(updateMenuColors, 10);
                                        });
                                        });

                                        // Ensure updateMenuColors runs on page load, scroll, and new page shown
                                        jQuery(document).ready(function() {
                                        updateMenuColors();
                                        jQuery(document).on('newpageshown', function() {
                                        updateMenuColors();
                                        });
                                        jQuery(document).on('scroll', function() {
                                        updateMenuColors();
                                        });
                                        });
                                        </script>

                                        I hope yall can help,

                                        Have a good day

                                        1 Reply Last reply
                                        0
                                        • arminunruhA Online
                                          arminunruhA Online
                                          arminunruh
                                          Global Moderator
                                          wrote on last edited by
                                          #30

                                          mh it seems like this page doesn't have a fullscreen slider active anymore:

                                          https://www.domaine-des-creisses.com/les-creisses/

                                          // "afterLoad" is called everytime the animation is done and we arrived (for the standard vertical sliding)
                                          jQuery(window).on('fpAfterLoad', function( e, obj ){
                                          console.log(obj.index)
                                          console.log(obj.anchorLink)
                                          })
                                          

                                          when you scroll down or up, the above event will be fired. based on "obj.index" you can do things. the index is 1 based, so: 1, 2, 3, 4

                                          this is for horizontal sliding:

                                          // this is for when you have horizontal sliding:
                                          jQuery(window).on('fpAfterSlideLoad', function( e, obj ){
                                          console.log(obj.slideIndex)
                                          })
                                          

                                          maybe this will be useful!

                                          the body also has a class: fp-viewing-4
                                          the number changes based on which slide you're on, you can use this body class for styling instead of using javascript

                                          some of the code you wrote wont work i think:

                                          body.slug-les-creisses.custom-slide-1

                                          i think this should have a space between, and should be like this:

                                          body.slug-les-creisses .custom-slide-1 
                                          

                                          sorry for the late answer

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          I also code custom websites or custom Lay features.
                                          💿 Email me here: 💿
                                          info@laytheme.com

                                          Before you post:
                                          1. When using a WordPress Cache plugin, disable it or clear your cache.
                                          2. Update Lay Theme and all Lay Theme Addons
                                          3. Disable all Plugins
                                          4. 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:
                                          1. Post a link to where the problem is
                                          2. Does the problem happen on Chrome, Firefox, Safari or iPhone or Android?
                                          3. If the problem is difficult to explain, post screenshots / link to a video to explain it
                                          Online Users
                                          arminunruhA
                                          arminunruh
                                          A
                                          alasdair17
                                          Forgot your key, lost your files, need a previous Lay Theme or Addon version? Go to www.laykeymanager.com
                                          laytheme.com
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Recent
                                          • Tags
                                          • Popular
                                          • Users
                                          • Search