Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/06/2023, 19:14
Avatar de Alexis88
Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
[APORTE] Notificaciones minimalistas

¡Hola a todos!

En ánimo de querer inyectar una pequeña cuota de actividad al foro, quiero compartir un pequeño plugin que elaboré completamente con JavaScript nativo, el cual genera pequeños cuadros que se muestran a manera de notificaciones.

Son ideales para emplear en entornos no seguros, que es lo que, por ejemplo, exige la API Notification, nativa de JavaScript. De hecho, la idea de elaborar esto surgió a raíz de un trabajo que hice para una entidad, la cual requería una aplicación web interna que muestre notificaciones en pantalla al producirse determinados eventos.

Sin más, el código fuente: Enlace al repositorio (originalmente lo mostré aquí, pero se superponía al texto de más abajo y no se podía distinguir nada, de manera que decidí dejar el enlace para que puedan verlo en la página de GitHub)

En esencia, el cuadro de notificación es un <div> al cual se le asigna un texto para mostrar y que, por defecto, se oculta pasados tres segundos o cuando se pulse sobre el cuadro.

La forma más sencilla de generar una notificación es la siguiente:

Código Javascript:
Ver original
  1. Notification.msg("¡Hola, Foros del Web!");

Se invoca al método estático msg() del objeto Notification y se le pasa una cadena de caracteres como mensaje a visualizar. Esta cadena también puede contener etiquetas HTML, como un <img> por si se desea mostrar un ícono o algo más grande. Dado que la intención de este plugin es la de generar notificaciones de estilo minimalista, no he considerado la inclusión de un ícono, título o botón de cerrado como elementos externos al mensaje que se va a mostrar.

Asimismo, existe una segunda forma de generar notificaciones estableciendo una configuración que alterará algunos aspectos de la forma preestablecida:

Código Javascript:
Ver original
  1. Notification.msg({
  2.     text: "¡Hola, Foros del Web!",
  3.     background: true,
  4.     time: 5000,
  5.     keep: false,
  6.     onShow: _ => console.log("La notificación se está mostrando"),
  7.     onHide: _ => console.log("La notificación se ha ocultado")
  8. });

Esta segunda forma permite establecer ciertas cosas, como un fondo oscuro del tamaño de la pantalla, un tiempo mayor o menor al que viene por defecto (tres segundos), determinar si la notificación se mostrará permanentemente (se ignora el tiempo establecido), y ejecutar llamadas de retorno tanto al momento de mostrar la notificación como luego de ocultarse.

Advertencia: En caso de invocar al método Notification.msg() sin pasarle argumentos o bien que el argumento no sea una cadena de caracteres ni un objeto literal, se producirá un error.

Pueden mostrarse varias notificaciones sin que se solapen unas sobre otras. Las notificaciones subsiguientes se ubicarán justo por encima de la primera, la cual se encontrará en la esquina inferior izquierda de la pantalla. Conforme se vayan ocultando, ya sea por haberse cumplido el tiempo establecido o porque el usuario las ocultó pulsándolas, las notificaciones restantes irán tomando el lugar de las anteriores.

Aquí pueden ver una demostración: Enlace a JSFiddle

Para más ejemplos y explicaciones, pueden leer la presentación en mi repositorio de GitHub.

Cualquier duda, consulta o sugerencia será bienvenida.

Un saludo
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Última edición por Alexis88; 22/06/2023 a las 02:02 Razón: Demostración