Skip to content
  • A place to talk about anything Lay Theme related
    5k 21k
    5k Topics
    21k Posts
    L
    Hey everybody, I want my second menu only to appear on the front page and on the project pages you can access from there. I want it to be hidden in the other categorie pages you can access via the main menu. Does anybody know how it works or has done it before? Thanks in advance!
  • Got an idea for Lay Theme? I might include it in a new update or code an addon.
    482 2k
    482 Topics
    2k Posts
    H
    Yes, indeed. Thanks for adding those to your list! (Oviously not very urgent but looking forward to these changes at some point in the future nonetheless.)
  • Shop related questions and issues

    260 1k
    260 Topics
    1k Posts
    C
    [image: 1770991007900-laytheme_woocommerce_question-resized.jpg]
  • Something is not working? Please provide a screenshot, your browser name and browser version and your operating system.
    3k 14k
    3k Topics
    14k Posts
    StarcS
    Hi! i recorded a video https://www.dropbox.com/scl/fi/pvcychu2rumf507zf3b3y/Percentage-imagehover.mov?rlkey=q0ril56cy1gx3wwewr7kvhbn9&dl=0
  • Did you follow the steps in "How to Install" and "Troubleshooting" but still have problems? And your webhost support could not help you either? Ask here.
    309 1k
    309 Topics
    1k Posts
    arminunruhA
    ok i answered you. thats so weird, i just checked and yours was the only valid email that actually landed in spam
  • Got a question about an Addon?
    885 4k
    885 Topics
    4k Posts
    A
    Hi @arminunruh , thank you again for your effort und time you spend in soling individual problems. I also just saw your reply on my post. In the meantime I found some work arounds. for Video auto playback I just use the h264 codec instead of VP-9 despite the bigger file size. At least for now its fine, but I would appreciate a fix for VP-9 :) But with both codecs the placeholder image does not get loaded when Video is used inside a Carousel. I used this code created by Gemini. So please don't judge me, if it's bad code, but it works for my specific use case. But still thought: sharing is caring :D I think it's very fragile and not very flexible, but for know works :D Custom CSS Desktop html, body, a, button, input, .lay-overlay { cursor: none !important; } /* Carousel "Hand" Killer */ html body .lay-carousel, html body .lay-carousel a, html body .lay-carousel img, html body .lay-carousel span, html body .lay-carousel .col { cursor: none !important; } html body .lay-carousel a:hover, html body .lay-carousel img:hover { cursor: none !important; } /* ================================================= */ /* 4. DER CUSTOM CURSOR */ /* ================================================= */ #custom-cursor { z-index: 2147483647 !important; position: fixed; top: 0; left: 0; width: 20px; height: 20px; background-color: white; border-radius: 50%; pointer-events: none; transform: translate(-50%, -50%); transition: width 0.2s ease, height 0.2s ease, background-color 0.2s ease; will-change: transform, width, height; /* STANDARD: Normal (Weißer Punkt) */ mix-blend-mode: normal !important; } /* ================================================= */ /* 5. CURSOR AUF WEISSEN SEITEN (Und Overlay) */ /* ================================================= */ /* Wenn .is-white-page aktiv ist ODER das Overlay offen ist -> Exclusion */ body.is-white-page #custom-cursor, body.lay-overlay-open #custom-cursor { mix-blend-mode: exclusion !important; } /* ================================================= */ /* 6. TEXT-FARBEN FIX (AUF WEISSEN SEITEN) */ /* ================================================= */ /* Alles auf Schwarz zwingen, wenn .is-white-page aktiv ist */ body.is-white-page .sitetitle, body.is-white-page .sitetitle *, body.is-white-page nav.lay-nav a, body.is-white-page nav.lay-nav span, body.is-white-page .laynav-element, body.is-white-page .laynav-position-top-right a, body.is-white-page .mobile-title, body.is-white-page .mobile-title * { color: #000000 !important; opacity: 1 !important; fill: #000000 !important; stroke: #000000 !important; mix-blend-mode: normal !important; } /* ================================================= */ /* 7. CAPTION FIX BEI OVERLAY */ /* ================================================= */ .lay-overlay { z-index: 2147483600 !important; background-color: white !important; } body.lay-overlay-open .caption-animator, body.lay-overlay-open .caption-wrapper { visibility: hidden !important; opacity: 0 !important; z-index: -1 !important; } /* ================================================= */ /* 8. CURSOR HOVER ZUSTÄNDE */ /* ================================================= */ /* A) Bild Hover (Thumbnail) -> Rot */ #custom-cursor.hovered-image { width: 40px; height: 40px; background-color: rgb(255, 0, 0) !important; mix-blend-mode: normal !important; opacity: 0.9; } /* B) Text Link Hover -> Rot/Exclusion */ #custom-cursor.hovered-text { width: 40px; height: 40px; background-color: rgb(255, 0, 0) !important; mix-blend-mode: exclusion !important; } /* C) BACK BUTTON HOVER (Ganz unten -> Höchste Prio) */ body #custom-cursor.hovered-btn { width: 40px !important; height: 40px !important; background-color: white !important; opacity: 1 !important; mix-blend-mode: exclusion !important; } Custom HTML at bottom <script> (function() { var cursor = document.getElementById("custom-cursor"); var cursorX = -100; var cursorY = -100; // 1. Performance-Bewegung document.addEventListener("mousemove", function(e) { cursorX = e.clientX; cursorY = e.clientY; }); function loop() { if(cursorX > 0) { cursor.style.transform = 'translate3d(' + (cursorX - cursor.offsetWidth/2) + 'px, ' + (cursorY - cursor.offsetHeight/2) + 'px, 0)'; } requestAnimationFrame(loop); } loop(); // 2. Hover Listener Logik function addHoverListeners() { var imageTargets = document.querySelectorAll(".lay-carousel-slide a, #custom-back-btn, .custom-overlay-close-icon, .overlay-close"); imageTargets.forEach(function(el) { el.removeEventListener("mouseenter", onImageEnter); el.removeEventListener("mouseleave", onImageLeave); el.addEventListener("mouseenter", onImageEnter); el.addEventListener("mouseleave", onImageLeave); }); var textTargets = document.querySelectorAll("a:not(.lay-carousel-slide a), .lay-nav a, .sitetitle a, .pointer, button, .clickable, .lay-overlay a"); textTargets.forEach(function(el) { if(el.querySelector('img')) return; el.removeEventListener("mouseenter", onTextEnter); el.removeEventListener("mouseleave", onTextLeave); el.addEventListener("mouseenter", onTextEnter); el.addEventListener("mouseleave", onTextLeave); }); var plainMedia = document.querySelectorAll(".lay-carousel img, .lay-carousel video"); plainMedia.forEach(function(el) { if(el.closest('a')) return; el.removeEventListener("mouseenter", onPlainMediaEnter); el.removeEventListener("mouseleave", onPlainMediaLeave); el.addEventListener("mouseenter", onPlainMediaEnter); el.addEventListener("mouseleave", onPlainMediaLeave); }); setTimeout(checkInitialState, 100); } function checkInitialState() { if(cursorX <= 0) return; var el = document.elementFromPoint(cursorX, cursorY); if(!el) return; if ( (el.tagName === 'IMG' || el.tagName === 'VIDEO') && el.closest('.lay-carousel') && !el.closest('a') ) { onPlainMediaEnter(); } } function onImageEnter() { cursor.classList.add("hovered-image"); cursor.classList.remove("hovered-text", "no-blend"); } function onImageLeave() { cursor.classList.remove("hovered-image"); } function onTextEnter() { cursor.classList.add("hovered-text"); cursor.classList.remove("hovered-image", "no-blend"); } function onTextLeave() { cursor.classList.remove("hovered-text"); } function onPlainMediaEnter() { cursor.classList.add("no-blend"); } function onPlainMediaLeave() { cursor.classList.remove("no-blend"); } addHoverListeners(); window.laytheme.on("newpageshown", function() { cursor.classList.remove("hovered-image", "hovered-text", "no-blend"); setTimeout(addHoverListeners, 200); }); setTimeout(addHoverListeners, 1000); })(); </script> Also Gemini'ed a solution for the function, also don't know if its really flexible but works for my website layout fine. CSS Desktop /* ================================================= */ /* 9. CUSTOM BACK BUTTON */ /* ================================================= */ #custom-back-btn { position: fixed; bottom: 25px; left: 20px; width: auto !important; height: 30px; z-index: 2147483500 !important; display: none; line-height: 0; cursor: none !important; mix-blend-mode: normal !important; } #custom-back-btn img { height: 100% !important; width: auto !important; display: block; filter: none !important; } /* Back Button Invertieren (Nur auf weißen Seiten) */ body.is-white-page #custom-back-btn img { filter: invert(1) !important; opacity: 1 !important; } body.is-white-page #custom-back-btn { mix-blend-mode: normal !important; filter: none !important; } HTML at Bottom <div id="custom-back-btn"> <img src="https://alexboecker.de/wp-content/uploads/2026/01/pfiel-weis-links-50px-back-button.png" alt="Back"> </div> <script> window.laytheme.on("newpageshown", function(layoutObj, type, obj){ var backBtn = jQuery('#custom-back-btn'); var storageKey = 'alex_pos_final_v3'; var isHomePage = jQuery('body').hasClass('slug-frontpage') || window.location.pathname === '/' || window.location.pathname === ''; // --- GRÖSSE AN MENÜ ANPASSEN --- function syncButtonSize() { var menuLink = jQuery('.lay-nav a').first(); if(menuLink.length === 0) { menuLink = jQuery('._Headline').first(); } if(menuLink.length > 0) { var fontSize = menuLink.css('font-size'); backBtn.css('height', fontSize); // console.log("Back Button Höhe angepasst auf: " + fontSize); } } syncButtonSize(); jQuery(window).off('resize.btnSize').on('resize.btnSize', syncButtonSize); // --- A) STARTSEITE LOGIK --- if (isHomePage) { var attempts = 0; function waitForSwiper() { var swiperEl = document.querySelector('.swiper-container'); if (swiperEl && swiperEl.swiper) { initHomePageLogic(swiperEl.swiper); } else { attempts++; if (attempts < 40) setTimeout(waitForSwiper, 50); } } waitForSwiper(); function initHomePageLogic(swiper) { var savedIndex = sessionStorage.getItem(storageKey); if (savedIndex && parseInt(savedIndex) > 0) { swiper.slideToLoop(parseInt(savedIndex), 0); } updateButton(swiper); swiper.on('slideChange', function() { sessionStorage.setItem(storageKey, swiper.realIndex); updateButton(swiper); }); backBtn.off('click').on('click', function() { swiper.slideToLoop(0, 600); sessionStorage.setItem(storageKey, 0); setTimeout(function(){ backBtn.fadeOut(); }, 600); }); } function updateButton(swiper) { if (swiper.realIndex > 0) backBtn.fadeIn(); else backBtn.fadeOut(); } // --- B) PROJEKTSEITE LOGIK --- } else { backBtn.fadeIn(); backBtn.off('click').on('click', function(e) { e.preventDefault(); window.location.href = "https://alexboecker.de/"; }); } // --- C) SITE TITLE RESET --- jQuery('.sitetitle, .sitetitle a, .lay-nav .sitetitle a').off('click').on('click', function(event) { sessionStorage.setItem(storageKey, 0); var linkTarget = jQuery(this).closest('a').attr('href'); var currentUrl = window.location.href.replace(/\/$/, ""); if (linkTarget && linkTarget.replace(/\/$/, "") === currentUrl) { var swiperEl = document.querySelector('.swiper-container'); if (swiperEl && swiperEl.swiper) swiperEl.swiper.slideToLoop(0, 0); } }); }); </script> Maybe its helping someone in the future :D thank you, have great day!
  • Created a website with Lay Theme? You can share it here.
    194 557
    194 Topics
    557 Posts
    arminunruhA
    text hover effect, i havent seen that before on a lay website
  • Find a developer who can use HTML or JavaScript or CSS to customize your Website. This is just a place to connect people and we do not take responsibility and I do not offer support for any custom coding done for you. The developers here are not part of the team working on Lay Theme.

    110 367
    110 Topics
    367 Posts
    L
    Thank you!

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

Our Web Development company: 100k.studio

Want to tip me? https://www.paypal.com/paypalme/arminunruh

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
Forgot your key, lost your files, need a previous Lay Theme or Addon version? Go to www.laykeymanager.com