jQuery(function($) { function closeAllOffCanvas(exceptID = null) { let anyOpen = false; // Track if another Off-Canvas remains open $(".e-off-canvas").each(function() { let canvasID = $(this).attr("id"); if (!exceptID || canvasID !== exceptID) { $(this).removeClass("e-off-canvas-visible") .addClass("e-off-canvas-hidden") .attr("aria-hidden", "true") .css({ "z-index": "10", "visibility": "hidden", "opacity": "0" }); // Full removal delay set to 0ms setTimeout(() => { if ($(this).attr("aria-hidden") === "true") { $(this).css("display", "none"); } }, 0); } else { anyOpen = true; // At least one Off-Canvas is still open } }); } function openOffCanvas(targetID) { let targetCanvas = $(targetID); if (targetCanvas.length) { // Close all others EXCEPT the one we're opening closeAllOffCanvas(targetID); // Open immediately with delay set to 0ms setTimeout(() => { targetCanvas.removeClass("e-off-canvas-hidden") .addClass("e-off-canvas-visible") .attr("aria-hidden", "false") .css({ "z-index": "9999", "visibility": "visible", "opacity": "1", "display": "block" }); // Ensure the White Background Stays Visible $("body").addClass("off-canvas-active"); // Force repaint after opening forceRepaint(); }, 0); } } // Decode Base64 function decodeBase64(str) { try { return atob(str); } catch (e) { return null; } } // Handle Elementor Off-Canvas OPEN clicks $(document).on('click', '[href*="elementor-action%3Aaction%3Doff_canvas%3Aopen"]', function(event) { event.preventDefault(); let href = decodeURIComponent($(this).attr("href")); let base64Match = href.match(/settings=([^&]+)/); if (base64Match) { let decodedSettings = decodeBase64(base64Match[1]); try { let settingsObj = JSON.parse(decodedSettings); if (settingsObj.id) { let offCanvasID = "#off-canvas-" + settingsObj.id; openOffCanvas(offCanvasID); } } catch (e) {} } }); // Handle Elementor Off-Canvas CLOSE clicks $(document).on('click', '[href*="elementor-action%3Aaction%3Doff_canvas%3Aclose"]', function(event) { event.preventDefault(); closeAllOffCanvas(); }); // Ensure all Off-Canvas elements start hidden (ONLY if NOT in Elementor Editor) function initializeOffCanvasVisibility() { // Check if the body does NOT have the Elementor edit mode class if (!$('body').hasClass('elementor-element-edit-mode')) { $(".e-off-canvas").each(function() { $(this).attr("aria-hidden", "true").css({ "z-index": "10", "visibility": "hidden", "opacity": "0", "display": "none" }); }); } } // Call the initialization function $(window).on('load', initializeOffCanvasVisibility); // Utility function to force repaint function forceRepaint() { if ($('body').length) { $('body')[0].style.display = 'none'; $('body')[0].offsetHeight; $('body')[0].style.display = ''; } } });

Visitez-nous au Congrès mondial des solutions IoT 2025 à Barcelone !

Visitez-nous au Congrès mondial des solutions IoT 2025 à Barcelone !

🌍 Des nouvelles excitantes ! Jouvoli se rend au congrès mondial des solutions IOT à Barcelone du 13 au 15 mai 2025 !

🚀 En tant qu'un des principaux événements mondiaux pour l'IoT, l'IA et la transformation numérique, l'IOTSWC25 rassemble plus de 11 000 leaders de l'industrie, innovateurs et décideurs pour explorer des solutions de pointe qui favorisent l'efficacité et la durabilité. 🔋

Chez Jouvoli, nous révolutionnons la gestion de l'énergie grâce à des informations précises qui aident les entreprises à éliminer le gaspillage d'énergie et à maximiser les économies.

📍 Rendez-nous visite sur le stand Hahn dans le hall 8, niveau 0, rue D, stand 27, où notre chef des ventes, Patrick Pillmeier et Jesús Espinosa Navarro, Product Owner & Teamlead Software Development, seront sur place pour discuter des dernières tendances et de l'innovation numérique. ✨

En savoir plus sur notre présence à l'IOTSWC 2025 et sur la façon dont Jouvoli façonne l'avenir de la gestion de l'énergie : jouvoli.io/iot-solutions-2025

Connectons-nous à Barcelone et façonnons ensemble l'avenir de la gestion durable de l'énergie ! 🌟

Partager l'article :
FR