Lo he dicho varias veces, el tema OceanWP de WordPress es uno de los mejores que existen en la actualidad: rápido, ligero y altamente personalizable en su versión gratuita ❤
Algunas de las opciones más demandadas por los usuarios están disponibles solo en la versión Premium.
Una de ellas, es la posibilidad de agregar una barra de navegación fija en el header o dicho en inglés: sticky bar. ¡Sí! esa misma que aparece en la parte superior y que te sigue cuando bajas en la página web.
Si no puedes o no quieres adquirir la versión Premium de OceanWP, en esta guía te enseño cómo agregar una sticky bar en el tema OceanWP de manera sencilla, práctica y gratis 😄
Contenido del post
Ventajas de la barra de navegación fija
La sticky bar es un elemento muy usado en el diseño web actual, dentro de las ventajas atribuibles a ella, tenemos:
- Mejora la usabilidad de la web al tener los elementos de navegación siempre disponibles para los usuarios.
- Si tienes elementos que quieres resaltar en tu sitio, como vínculos, imágenes, campo de búsqueda o cuentas atrás (countdown); la barra de navegación es el mejor sitio para ello. Además, como está siempre visible, mejora enormemente la posibilidad de que la gente haga clic en ellos.
A muchos diseñadores web no les gusta, ya que tiende a distraer la atención del contenido y también disminuye el espacio disponible dentro del navegador web.
Estas dos objeciones son fácilmente solventables: usando una barra de navegación fija con el menor tamaño posible y sin recargarla con elementos que no deseemos llamen la atención del usuario.
Agregando una barra de navegación fija en OceanWP
Tener tu sticky bar es bastante sencillo 😋. Dirígete como administrador de WordPress a: Apariencia > Personalizar, luego haz clic a la opción Custom CSS/JS, ubicado en el menú a la izquierda.
Agrega esto en el espacio en blanco que pone Código CSS
@media only screen and (min-width: 960px) { header#site-header { position: fixed; left: 0; right: 0; top: 0; width: 100%; z-index: 9999; -webkit-transition: all .5s; transition: all .5s; height: 76px; } .page-header { margin-top:76px; } header#site-header.sticky { height: 62px; } header#site-header.sticky #site-navigation-wrap .dropdown-menu>li>a { line-height: 62px; } .admin-bar header#site-header { top: 32px; } #site-logo #site-logo-inner { height:0 !important; } }
Ahora agrega también este código en Custom JS
jQuery(document).ready(function($) { $(window).scroll(function () { if ($(window).scrollTop() > 100) { $('header#site-header').addClass('sticky'); } else{ $('header#site-header').removeClass('sticky'); } }); });
Hazle clic a botón Publicar, ubicado en la parte superior.
¡Listo!, ya tenemos nuestra Sticky bar. ¿Facil verdad? 👍
Personalizando el código
Con el código anterior, obtendrás de manera rapida tu barra de navegación fija. Pero si quieres adaptarla a tus necesidades, te muestro como hacerlo.
Es importante que solo cambies los valores deseados para que pueda funcionar adecuadamente. Cuida de mantener los espacios, tal como se muestran.
Pantallas donde se muestra la barra fija
Esta sticky bar se aplica solo en pantallas para computadoras de escritorio, o dicho de otra manera, para aquellas que tengan un ancho igual o mayor a 960 px. La mayoría de los monitores actuales cumplen con estas especificaciones.
Para las pantallas más pequeñas, como los de dispositivos móviles: celulares o tabletas, se usará el menú hamburguesa que viene por defecto en el tema OceanWP de WordPress.
Si quieres que se vea en pantallas más pequeñas, cambia el valor 960 en la línea 1 del código CSS: @media only screen and (min-width: 960px) {
Por ejemplo: un valor de 720, hará que se muestre en pantallas con resolución 1280 x 720, entre otras.
Alto de la sticky bar
Para tener una barra de navegación fija con un alto diferente , cambia el valor 76 en la línea 11 del Código CSS: height: 76px;
Si tú logo excede este número (por encima de los 76 pixeles de alto), te recomiendo cambiarlo por un valor que tenga 20 pixeles adicionales, para que quede holgado dentro de la barra. Por ejemplo: si tú logo tiene 100 pixeles de alto, el valor a sustituir sería 120.
Deberás colocar este mismo valor en la línea 14: margin-top:76px;, sustituyendo 76 por 120.
Asimismo, puedes sustituir el número 62 de height en la línea 17: height: 62px;. Esta determina el alto de la sticky bar cuando te mueves hacia abajo por la página web (efecto que reduce el tamaño de la barra). Cámbialo por un valor que sea al menos 10 pixeles más que el tamaño del logotipo.
Por ejemplo: si tú logo tiene 100 pixeles de alto, el valor debe ser de 110.
Otro valor a sustituir es el 62 en la línea 21: line-height: 62px;. Debe ser igual al valor de la línea 17. Siguiendo el ejemplo anterior: reemplaza 62 por 110.
Efecto de reducción al mover el scroll
Al movernos por la pantalla hacia abajo, se reducirá el tamaño de la barra de navegación fija para que haga uso del menor espacio posible en pantalla.
En el código que te facilito, al bajar 100 pixeles con el scroll se mostrará el efecto de reducción.
Si quieres cambiarlo, sustituye 100 por el valor que quieras, en el campo Custom JS, línea 3: if ($(window).scrollTop() > 100) {
Con esto ya tendrás tu sticky bar en OceanWP, personalizada a tu gusto 👊
Espero te guste esta guía. Si tienes tus dudas, déjalas en los comentarios, que gustosamente las atenderé. Saludos.

Fundador de VivaBlogger y cofundador de EVirtualplus. Soy un tecnomaniaco desde que estaba en pañales. Mi familia es el fundamento de mi vida. Sígueme en mis redes sociales.
Genial me ha servido, gracias
Excelente. funciona a la perfeccion en la version 5.2.4 de WP
el unico detalle es que no modifique el custom JS
Muchisimas gracias por el aporte.
Hola Diogenes.. Gracias por tomarte el tiempo para compartir esta informacion, funciono a la perfeccion.!
Me encantan estos comentarios 🤩
Saludos Eduardo.
Hola qué tal, muchísimas gracias por este tip, me hiciste ahorrar dinero!
Lo único que sumé al header redes sociales y estas no se ven afectadas en cuanto a la alineación cuando el header se hace sticky, aquí tengo el ejemplo:
http://www.estudiolopezquiros.com.ar
Qué debería escribir en el código para que se alineen? Perdón, pero soy 0 coder. Muchas gracias!
Disculpa por la respuesta tardía.
Supongo que lo arreglaste ya que veo funciona bien.
Saludos.
Crack!!! Funciono perfecto. Mil gracias! Lo unico que me borro la barra superior que estaba sobre el encabezado. Tenes idea como evitar esto? Leo el codigo pero no interpreto si alguna parte la elimina. Muchas muchas gracias por el aporte!!!
Hola Gustavo.
Difícil poder ayudarte sin ver la pagina.
Pasame el enlace.
Mil gracias, funciona a la perfección!! he de ir ajustando algún dato por el logo pero todo bajo control. Gracias por el tutorial y por ahorrarnos 10$ 😉
Hola Carlos.
Me alegra haberte ahorrado dinero 😉
Saludos.
Muchas gracias. No se código y me funcionó perfectamente en mi sitio. Al usar plugins, los sliders y otros elementos se superponían al menú al hacer scroll, pero con este código lo solucioné. El único detalle por si a alguien le sirve era que al pegar el código “custom js” me salía error así que termine pegando solo el css.
Hola Micaela.
He probado hace muy poco este truco con la ultima versión del Oceanwp a la fecha (1.6.7) incluido el codigo JS y ha funcionada a la perfección.
De todas maneras me alegra te haya servido al menos una parte 😀
Saludos.
Que mas brother!!! gracias por el código funciona bien, pero tengo un problema al usarlo en una tienda online y es el siguiente, pasa que cuando ingreso a la Vista Previa de un producto la barra sigue por encima, he intentado con el z-index de woocommerce pero cuando se sobrepone queda en modo oscuro y no deja usar las opciones del producto solo se sale a la pagina principal al hacer clic, estoy trabajando en modo localhost(siento no poder mostrar la web)
Saludos
Hola Introvert.
Lamento no poder ayudarte, pero como comentas, sin poder ver la pagina es muy difícil ver que ocurre 😕
Hola,
El código no funciona. quizás la actualización a la OceanWP v1.6.7 haya condicionado algo.
En mi caso el efecto que hace es mover el logo de sitio (lo sube) y un movimiento suave de la imagen de cabecera.
Pero el resultado final es que no deja el menu fijado.
Hola txus.
El código funciona perfectamente en la versión mas actual (1.6.7).
Es posible que lo hayas copiado incorrectamente, o otro código css anterior afecte su funcionamiento.
Saludos.
Hola Diógenes¡¡¡
Muy bueno el post y muy bueno el blog, que he descubierto hace un rato y llevo dos horas abducido.. (por supuesto me he suscrito).
Muchas gracias por el contenido tan valioso que compartes y Feliz Navidad¡¡¡.. los días que quedan, claro.
Saludos desde España¡¡
Me encanta que te encante 😀
Saludos.