extraccion de menu y footer
This commit is contained in:
+5
-106
@@ -5,6 +5,8 @@
|
|||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
<title>Amor & Roma — Estudio Creativo</title>
|
<title>Amor & Roma — Estudio Creativo</title>
|
||||||
<link rel="stylesheet" href="styles/main.css">
|
<link rel="stylesheet" href="styles/main.css">
|
||||||
|
<link rel="preload" href="partials/menu.html" as="fetch" crossorigin>
|
||||||
|
<link rel="preload" href="partials/footer.html" as="fetch" crossorigin>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<!-- ===== CANVAS PARA EFECTO DE HUMO ===== -->
|
<!-- ===== CANVAS PARA EFECTO DE HUMO ===== -->
|
||||||
@@ -14,73 +16,7 @@
|
|||||||
<div class="overlay" id="overlay" onclick="toggleMenu()"></div>
|
<div class="overlay" id="overlay" onclick="toggleMenu()"></div>
|
||||||
|
|
||||||
<!-- ===== MENU BOTTOM SHEET ===== -->
|
<!-- ===== MENU BOTTOM SHEET ===== -->
|
||||||
<nav class="sheet" id="sheet">
|
<div id="menu-placeholder"></div>
|
||||||
<div class="sheet-handle"></div>
|
|
||||||
<div class="sheet-top">
|
|
||||||
<div class="logo">
|
|
||||||
<a href="index.html">
|
|
||||||
<img src="./assets/logos/logo_ciruela.png" alt="Amor & Roma" class="logo-img">
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
<button class="close-btn" onclick="toggleMenu()">✕</button>
|
|
||||||
</div>
|
|
||||||
<div class="sheet-body">
|
|
||||||
<div class="sheet-col">
|
|
||||||
<div class="sheet-col-title">Soluciones Web</div>
|
|
||||||
<a href="#servicios" onclick="toggleMenu()" class="sheet-link">
|
|
||||||
<span class="sheet-link-icon">⊞</span>
|
|
||||||
<span class="sheet-link-main">Diseño Web</span>
|
|
||||||
<span class="sheet-link-desc">Sitios informativos modernos</span>
|
|
||||||
</a>
|
|
||||||
<a href="#servicios" onclick="toggleMenu()" class="sheet-link">
|
|
||||||
<span class="sheet-link-icon">⊞</span>
|
|
||||||
<span class="sheet-link-main">E-commerce</span>
|
|
||||||
<span class="sheet-link-desc">Tiendas online con todas las funcionalidades</span>
|
|
||||||
</a>
|
|
||||||
<a href="#servicios" onclick="toggleMenu()" class="sheet-link">
|
|
||||||
<span class="sheet-link-icon">⊞</span>
|
|
||||||
<span class="sheet-link-main">Google Ads</span>
|
|
||||||
<span class="sheet-link-desc">Publicidad en Search y Display</span>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
<div class="sheet-col">
|
|
||||||
<div class="sheet-col-title">Redes Sociales</div>
|
|
||||||
<a href="#servicios" onclick="toggleMenu()" class="sheet-link">
|
|
||||||
<span class="sheet-link-icon">⊞</span>
|
|
||||||
<span class="sheet-link-main">Community Manager</span>
|
|
||||||
<span class="sheet-link-desc">Administración profesional de redes</span>
|
|
||||||
</a>
|
|
||||||
<a href="#servicios" onclick="toggleMenu()" class="sheet-link">
|
|
||||||
<span class="sheet-link-icon">⊞</span>
|
|
||||||
<span class="sheet-link-main">Creación de Contenido</span>
|
|
||||||
<span class="sheet-link-desc">Contenido original y atractivo</span>
|
|
||||||
</a>
|
|
||||||
<a href="#servicios" onclick="toggleMenu()" class="sheet-link">
|
|
||||||
<span class="sheet-link-icon">⊞</span>
|
|
||||||
<span class="sheet-link-main">Meta Ads</span>
|
|
||||||
<span class="sheet-link-desc">Publicidad en Facebook e Instagram</span>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
<div class="sheet-col">
|
|
||||||
<div class="sheet-col-title">Branding</div>
|
|
||||||
<a href="#servicios" onclick="toggleMenu()" class="sheet-link">
|
|
||||||
<span class="sheet-link-icon">⊞</span>
|
|
||||||
<span class="sheet-link-main">Diseño de Logos</span>
|
|
||||||
<span class="sheet-link-desc">Personalizados y profesionales</span>
|
|
||||||
</a>
|
|
||||||
<a href="#servicios" onclick="toggleMenu()" class="sheet-link">
|
|
||||||
<span class="sheet-link-icon">⊞</span>
|
|
||||||
<span class="sheet-link-main">Identidad de Marca</span>
|
|
||||||
<span class="sheet-link-desc">Creación y desarrollo de marca</span>
|
|
||||||
</a>
|
|
||||||
<a href="#contacto" onclick="toggleMenu()" class="sheet-link highlight">
|
|
||||||
<span class="sheet-link-icon">✉</span>
|
|
||||||
<span class="sheet-link-main">Contacto</span>
|
|
||||||
<span class="sheet-link-desc">Empezá tu proyecto</span>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
<!-- ===== HEADER ===== -->
|
<!-- ===== HEADER ===== -->
|
||||||
<header>
|
<header>
|
||||||
@@ -616,48 +552,11 @@
|
|||||||
</section>
|
</section>
|
||||||
|
|
||||||
<!-- ===== FOOTER ===== -->
|
<!-- ===== FOOTER ===== -->
|
||||||
<footer class="footer">
|
<div id="footer-placeholder"></div>
|
||||||
<div class="footer-inner">
|
|
||||||
<div class="footer-brand">
|
|
||||||
<div class="footer-logo"><img src="logo_frio.png" alt="Amor & Roma" style="height:36px;width:auto;"></div>
|
|
||||||
<p class="footer-desc">Branding, diseño web y marketing digital para marcas con esencia.</p>
|
|
||||||
</div>
|
|
||||||
<div class="footer-links">
|
|
||||||
<div class="footer-col">
|
|
||||||
<h4>Navegación</h4>
|
|
||||||
<a href="#servicios">Servicios</a>
|
|
||||||
<a href="#planes">Planes</a>
|
|
||||||
<a href="#cifras">Cifras</a>
|
|
||||||
<a href="#faq">FAQ</a>
|
|
||||||
</div>
|
|
||||||
<div class="footer-col">
|
|
||||||
<h4>Servicios</h4>
|
|
||||||
<a href="#servicios">Branding</a>
|
|
||||||
<a href="#servicios">Diseño Web</a>
|
|
||||||
<a href="#servicios">Marketing Digital</a>
|
|
||||||
<a href="#servicios">IA & Automatización</a>
|
|
||||||
</div>
|
|
||||||
<div class="footer-col">
|
|
||||||
<h4>Contacto</h4>
|
|
||||||
<a href="mailto:contacto@amoryroma.com.ar">contacto@amoryroma.com.ar</a>
|
|
||||||
<a href="https://wa.me/5493886118304" target="_blank">+54 9 388 611-8304</a>
|
|
||||||
<div class="footer-socials">
|
|
||||||
<a href="https://www.instagram.com/amoryroma.creativo/" target="_blank" aria-label="Instagram">IG</a>
|
|
||||||
<a href="https://www.linkedin.com/in/patricia-pugliese/" target="_blank" aria-label="LinkedIn">IN</a>
|
|
||||||
<a href="https://web.facebook.com/amoryroma.creativo" target="_blank" aria-label="Facebook">FB</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="footer-bottom">
|
|
||||||
<span>© 2026 Amor & Roma — Estudio Creativo. Todos los derechos reservados.</span>
|
|
||||||
<span class="footer-legal"><a href="#">Política de privacidad</a><a href="#">Términos y condiciones</a></span>
|
|
||||||
</div>
|
|
||||||
</footer>
|
|
||||||
|
|
||||||
<!-- ===== SCRIPTS ===== -->
|
<!-- ===== SCRIPTS ===== -->
|
||||||
<script src="scripts/main.js"></script>
|
<script src="scripts/main.js"></script>
|
||||||
<script src="fluid.js"></script>
|
<script src="fluid.js"></script>
|
||||||
|
<script src="scripts/loader.js" defer></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
@@ -0,0 +1,43 @@
|
|||||||
|
<footer class="footer">
|
||||||
|
<div class="footer-inner">
|
||||||
|
<div class="footer-brand">
|
||||||
|
<div class="footer-logo">
|
||||||
|
<img src="./assets/logos/logo_frio.png" alt="Amor & Roma" style="height:36px;width:auto;">
|
||||||
|
</div>
|
||||||
|
<p class="footer-desc">Branding, diseño web y marketing digital para marcas con esencia.</p>
|
||||||
|
</div>
|
||||||
|
<div class="footer-links">
|
||||||
|
<div class="footer-col">
|
||||||
|
<h4>Navegación</h4>
|
||||||
|
<a href="#servicios">Servicios</a>
|
||||||
|
<a href="#planes">Planes</a>
|
||||||
|
<a href="#cifras">Cifras</a>
|
||||||
|
<a href="#faq">FAQ</a>
|
||||||
|
</div>
|
||||||
|
<div class="footer-col">
|
||||||
|
<h4>Servicios</h4>
|
||||||
|
<a href="#servicios">Branding</a>
|
||||||
|
<a href="#servicios">Diseño Web</a>
|
||||||
|
<a href="#servicios">Marketing Digital</a>
|
||||||
|
<a href="#servicios">IA & Automatización</a>
|
||||||
|
</div>
|
||||||
|
<div class="footer-col">
|
||||||
|
<h4>Contacto</h4>
|
||||||
|
<a href="mailto:contacto@amoryroma.com.ar">contacto@amoryroma.com.ar</a>
|
||||||
|
<a href="https://wa.me/5493886118304" target="_blank">+54 9 388 611-8304</a>
|
||||||
|
<div class="footer-socials">
|
||||||
|
<a href="https://www.instagram.com/amoryroma.creativo/" target="_blank" aria-label="Instagram">IG</a>
|
||||||
|
<a href="https://www.linkedin.com/in/patricia-pugliese/" target="_blank" aria-label="LinkedIn">IN</a>
|
||||||
|
<a href="https://web.facebook.com/amoryroma.creativo" target="_blank" aria-label="Facebook">FB</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="footer-bottom">
|
||||||
|
<span>© 2026 Amor & Roma — Estudio Creativo. Todos los derechos reservados.</span>
|
||||||
|
<span class="footer-legal">
|
||||||
|
<a href="#">Política de privacidad</a>
|
||||||
|
<a href="#">Términos y condiciones</a>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
@@ -0,0 +1,71 @@
|
|||||||
|
<!-- ===== OVERLAY ===== -->
|
||||||
|
<div class="overlay" id="overlay" onclick="toggleMenu()"></div>
|
||||||
|
|
||||||
|
<!-- ===== MENU BOTTOM SHEET ===== -->
|
||||||
|
<nav class="sheet" id="sheet" aria-label="Menú principal">
|
||||||
|
<div class="sheet-handle"></div>
|
||||||
|
<div class="sheet-top">
|
||||||
|
<div class="logo">
|
||||||
|
<a href="index.html">
|
||||||
|
<img src="./assets/logos/logo_ciruela.png" alt="Amor & Roma" class="logo-img">
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<button class="close-btn" onclick="toggleMenu()" aria-label="Cerrar menú">✕</button>
|
||||||
|
</div>
|
||||||
|
<div class="sheet-body">
|
||||||
|
<div class="sheet-col">
|
||||||
|
<div class="sheet-col-title">Soluciones Web</div>
|
||||||
|
<a href="#servicios" onclick="toggleMenu()" class="sheet-link">
|
||||||
|
<span class="sheet-link-icon">⊞</span>
|
||||||
|
<span class="sheet-link-main">Diseño Web</span>
|
||||||
|
<span class="sheet-link-desc">Sitios informativos modernos</span>
|
||||||
|
</a>
|
||||||
|
<a href="#servicios" onclick="toggleMenu()" class="sheet-link">
|
||||||
|
<span class="sheet-link-icon">⊞</span>
|
||||||
|
<span class="sheet-link-main">E-commerce</span>
|
||||||
|
<span class="sheet-link-desc">Tiendas online con todas las funcionalidades</span>
|
||||||
|
</a>
|
||||||
|
<a href="#servicios" onclick="toggleMenu()" class="sheet-link">
|
||||||
|
<span class="sheet-link-icon">⊞</span>
|
||||||
|
<span class="sheet-link-main">Google Ads</span>
|
||||||
|
<span class="sheet-link-desc">Publicidad en Search y Display</span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<div class="sheet-col">
|
||||||
|
<div class="sheet-col-title">Redes Sociales</div>
|
||||||
|
<a href="#servicios" onclick="toggleMenu()" class="sheet-link">
|
||||||
|
<span class="sheet-link-icon">⊞</span>
|
||||||
|
<span class="sheet-link-main">Community Manager</span>
|
||||||
|
<span class="sheet-link-desc">Administración profesional de redes</span>
|
||||||
|
</a>
|
||||||
|
<a href="#servicios" onclick="toggleMenu()" class="sheet-link">
|
||||||
|
<span class="sheet-link-icon">⊞</span>
|
||||||
|
<span class="sheet-link-main">Creación de Contenido</span>
|
||||||
|
<span class="sheet-link-desc">Contenido original y atractivo</span>
|
||||||
|
</a>
|
||||||
|
<a href="#servicios" onclick="toggleMenu()" class="sheet-link">
|
||||||
|
<span class="sheet-link-icon">⊞</span>
|
||||||
|
<span class="sheet-link-main">Meta Ads</span>
|
||||||
|
<span class="sheet-link-desc">Publicidad en Facebook e Instagram</span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<div class="sheet-col">
|
||||||
|
<div class="sheet-col-title">Branding</div>
|
||||||
|
<a href="#servicios" onclick="toggleMenu()" class="sheet-link">
|
||||||
|
<span class="sheet-link-icon">⊞</span>
|
||||||
|
<span class="sheet-link-main">Diseño de Logos</span>
|
||||||
|
<span class="sheet-link-desc">Personalizados y profesionales</span>
|
||||||
|
</a>
|
||||||
|
<a href="#servicios" onclick="toggleMenu()" class="sheet-link">
|
||||||
|
<span class="sheet-link-icon">⊞</span>
|
||||||
|
<span class="sheet-link-main">Identidad de Marca</span>
|
||||||
|
<span class="sheet-link-desc">Creación y desarrollo de marca</span>
|
||||||
|
</a>
|
||||||
|
<a href="#contacto" onclick="toggleMenu()" class="sheet-link highlight">
|
||||||
|
<span class="sheet-link-icon">✉</span>
|
||||||
|
<span class="sheet-link-main">Contacto</span>
|
||||||
|
<span class="sheet-link-desc">Empezá tu proyecto</span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
@@ -0,0 +1,50 @@
|
|||||||
|
/**
|
||||||
|
* Loader de partials HTML (menú + footer).
|
||||||
|
* - Usa fetch + cache del navegador.
|
||||||
|
* - Inyecta con innerHTML (sin reflow bloqueante).
|
||||||
|
* - Diferido con requestIdleCallback para no competir con el render.
|
||||||
|
*/
|
||||||
|
(function () {
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
const PARTIALS = [
|
||||||
|
{ url: 'partials/menu.html', target: 'menu-placeholder' },
|
||||||
|
{ url: 'partials/footer.html', target: 'footer-placeholder' }
|
||||||
|
];
|
||||||
|
|
||||||
|
// Cache en memoria para evitar refetch si se llama varias veces
|
||||||
|
const cache = new Map();
|
||||||
|
|
||||||
|
async function loadPartial({ url, target }) {
|
||||||
|
const el = document.getElementById(target);
|
||||||
|
if (!el) return;
|
||||||
|
|
||||||
|
try {
|
||||||
|
let html = cache.get(url);
|
||||||
|
if (!html) {
|
||||||
|
const res = await fetch(url, { cache: 'force-cache' });
|
||||||
|
if (!res.ok) throw new Error(`HTTP ${res.status} en ${url}`);
|
||||||
|
html = await res.text();
|
||||||
|
cache.set(url, html);
|
||||||
|
}
|
||||||
|
// Inserción vía fragmento para minimizar reflows
|
||||||
|
el.outerHTML = html;
|
||||||
|
} catch (err) {
|
||||||
|
console.warn(`[loader] No se pudo cargar ${url}:`, err);
|
||||||
|
// Fallback silencioso: deja el placeholder vacío
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function loadAll() {
|
||||||
|
// En paralelo: ambas peticiones viajan juntas
|
||||||
|
PARTIALS.forEach(loadPartial);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Espera al idle para no bloquear LCP/FCP
|
||||||
|
if ('requestIdleCallback' in window) {
|
||||||
|
requestIdleCallback(loadAll, { timeout: 1500 });
|
||||||
|
} else {
|
||||||
|
// Fallback para Safari
|
||||||
|
window.addEventListener('load', () => setTimeout(loadAll, 0));
|
||||||
|
}
|
||||||
|
})();
|
||||||
Reference in New Issue
Block a user