[ad_1]
Aquí está la página de demostración que vamos a crear para demostrar las cosas:
Asegúrese de desplazarse alrededor de debajo en la página para notar cómo los fundamentos específicos se vuelven pegajosos.
Al igual que con otros tutoriales de UIkit, la espontaneidad con este ámbito será beneficiosa para seguir.
El tesina de demostración
Nuestra página constará de las siguientes secciones:
- el encabezado
- El estandarte del héroe
- las publicaciones
Así es como se verá:



Estas son las partes importantes del afectado de la página:
<header class="page-header"> <div class="notification uk-background-muted uk-text-center uk-h4 uk-margin-remove">...</div> <nav uk-sticky> <div class="uk-background-secondary uk-light uk-padding uk-padding-remove-horizontal uk-h3 uk-margin-remove">...</div> <div class="uk-background-muted uk-padding-small uk-padding-remove-horizontal uk-text-center uk-h4 uk-margin-remove uk-visible@m">...</div> </nav> </header> <section class="uk-background-cover" uk-height-viewport="offset-top: true" style="background-image: url(unsplash-posts.jpg);"></section> <section class="uk-margin-large-bottom"> <div class="post-filters uk-background-secondary uk-light uk-padding uk-padding-remove-horizontal uk-h4"> <div class="uk-container"> <form class="post-filters-form uk-flex uk-flex-middle uk-flex-between"> <div class="post-filters-form-inner uk-flex-1"> <button class="uk-button uk-button-default" type="button">TOGGLE FILTERS</button> <div class="post-filters-dropdown" uk-dropdown="mode: click; boundary: .post-filters-form; pos: bottom-justify">ALL FILTERS HERE</div> </div> <button class="uk-button uk-button-default" type="submit">APPLY FILTERS</button> </form> </div> </div> <div class="uk-container uk-margin-large"> <div class="uk-child-width-1-2@s uk-child-width-1-3@m" uk-grid> <div class="uk-flex"> <article class="uk-card uk-card-secondary uk-card-body uk-width-1-1"> <h3 class="uk-text-center">...</h3> <p>...</p> </article> </div> <!-- more cards here --> </div> </div> </section>
Tenga en cuenta que estamos usando diferentes clases de UIkit para construir el diseño. Más allá de estas clases predefinidas, asimismo hay algunas personalizadas que nos ayudarán a gritar fundamentos específicos a través de JavaScript.
Si no está completamente familiarizado con UIkit, le recomiendo que broa las herramientas de progreso de su navegador e inspeccione diferentes fundamentos para comprender qué están haciendo todas estas clases.
Poner al día componentes
Entrando en más detalle, el encabezado de la página constará de dos fundamentos:
- Una mostrador de notificaciones
- un pegajoso
nav
punto con dos niñosdiv
fundamentos. Tenga en cuenta que el segundodiv
será visible solo en pantallas cuyo pancho sea de al menos 960px.
La sección de publicaciones incluirá los filtros y la cuadrícula.
Pegajoso
A medida que nos desplazamos alrededor de debajo en la página, los filtros deben permanecer adhesivos y sentarse debajo de la ritual adhesiva. nav
punto.
El sucesivo código JavaScript los configurará como pegajosos:
const pageHeader = document.querySelector(".page-header"); const nav = pageHeader.querySelector("nav"); const postFilters = UIkit.sticky(".post-filters", { offset: nav.offsetHeight });
Si ahora imprimimos en la consola este punto adhesivo, veremos todas sus opciones disponibles:



Presta atención a offset
propiedad. Su valía será diferente dependiendo del tamaño de la pantalla. Recuerda que el segundo div
del nav
El punto solo será visible en pantallas de al menos 960 px de pancho.
Si comenzamos a cambiar el tamaño de la página, notaremos que los filtros no permanecerán fijos en la posición esperada. Esto sucede porque no actualizamos el offset
valía, pero en su circunscripción mantenga solo el que viene en la carga de la página. Entonces, para que este componente sea preciso, debemos unir este fragmento de código:
window.addEventListener("resize", function () { postFilters.offset = nav.offsetHeight; });
Desplegable
Si hace clic en el Turnar filtros rama, notará que hay un menú desplegable. En un atmósfera verdadero, esto podría incluir todas las etiquetas de publicaciones, categorías o cualquier otro término de taxonomía. Su pancho cambiará dependiendo del tamaño de la pantalla.
Dicho esto, en pantallas de hasta 959 px, se verá así:



Sin retención, en pantallas más grandes será de la sucesivo forma:



Observe que, en el segundo caso, el menú desplegable no cubre todo el pancho principal, sino que crece amoldonado ayer del Aplicar filtros rama.
Para cumplir con este requisito, primero inicializaremos un nuevo componente desplegable usando atributos personalizados como este:
<div class="post-filters-dropdown" uk-dropdown="mode: click; boundary: .post-filters-form; pos: bottom-justify"> ALL FILTERS HERE </div>
Siéntase vacío de deletrear la documentación del componente para comprender las opciones que estamos pasando.
A continuación, obtendremos una remisión a este componente como esta:
const dropdown = UIkit.dropdown(".post-filters-dropdown");
Nuevamente para ver todas las opciones desplegables, lo imprimiremos en la consola:



Observe la boundary
valía del parámetro. Por defecto, establecemos este valía en el form
punto que asegura que el menú desplegable coincidirá con su pancho. Esto está admisiblemente para pantallas pequeñas, pero en pantallas que tienen al menos 960 px de pancho, su pancho debe coincidir con el pancho del .post-filters-form-inner
punto. Entonces, para hacer esto, agregaremos esta condición:
... if (mqMedium.matches) { dropdown.boundary = postFiltersFormInner; }
Finalmente, para avalar que esta condición se cumpla al cambiar el tamaño de la ventana, agregaremos este fragmento de código:
... window.addEventListener("resize", function () { if (mqMedium.matches) { dropdown.boundary = postFiltersFormInner; } else { dropdown.boundary = postFiltersForm; } });
Puede confirmar todo el código necesario al relevarse la pestaña JavaScript de la demostración.
Conclusión
¡Eso es todo por hoy, amigos! Este control mostró cómo refrescar las opciones de dos componentes de UIkit, brindándole suficiente conocimiento para refrescar asimismo otros componentes de UIkit.
Aquí está nuestra página de demostración como recordatorio:
Por final, pero no menos importante, en la documentación, hay información sobre cómo refrescar un componente usando el update
evento. Tenga esto en cuenta en caso de que sea necesario.
Como siempre, ¡muchas gracias por deletrear!
Tutoriales de UIkit en Tuts +
UIkit, en las propias palabras de los desarrolladores, es un “ámbito delantero insignificante y modular para desarrollar interfaces web rápidas y potentes”. Es una forma muy popular de crear interfaces front-end, ¡así que siga estos tutoriales!