Leer en otros idiomas: ucraniano, inglés.
goit-js-hw-11 .GitHub Pages .async/await .Prettier .Cree un frente de la aplicación de la búsqueda y visualización de imágenes por palabra clave. Agregue el diseño de elementos de interfaz. Vea el Video de demostración de la aplicación.
El formulario primero contiene en el documento HTML. El usuario ingresará una línea para buscar en un cuadro de texto, y el formulario del formulario debe hacerse mediante solicitud HTTP.
< form class =" search-form " id =" search-form " >
< input
type =" text "
name =" searchQuery "
autocomplete =" off "
placeholder =" Search images... "
/>
< button type =" submit " > Search </ button >
</ form > Use una API pública de Pixabay para un respaldo. Regístrese, obtenga su clave de acceso única y se familiarice con la documentación.
Lista de las opciones de cadena de consulta que debe indicar:
key es su clave de acceso única para la API.q es el término para la búsqueda. Lo que ingresará el usuario.image_type - Tipo de imagen. Solo se necesitan fotos, así que ponga photo .orientation - Orientación de la foto. Pon el valor de horizontal .safesearch - Filtrar por edad. Poner un valor true .La respuesta será una variedad de imágenes que satisfacen los criterios de los parámetros de consulta. Cada imagen se describe mediante un objeto del que solo está interesado en las siguientes propiedades:
webformatURL : enlace a una pequeña imagen para la lista de tarjetas.largeImageURL - Enlace a una imagen grande.tags : una línea con una descripción de la imagen. Adecuado para un atributo alt .likes : el número de me gusta.views : el número de vistas.comments : el número de comentarios.downloads : el número de descargas. Si un respaldo devuelve una matriz vacía, entonces no se encontró nada adecuado. En este caso, muestre un mensaje con el texto "Sorry, there are no images matching your search query. Please try again." . Use la biblioteca Notiflix para mensajes.
El elemento div.gallery se contiene por primera vez en el documento HTML, y debe alquilar para las marcas de tarjetas de imagen. Al buscar una nueva palabra clave, debe limpiar completamente el contenido de la galería para no mezclar los resultados.
< div class =" gallery " >
<!-- Картки зображень -->
</ div >Plantilla de marcado de tarjeta de una imagen para la galería.
< div class =" photo-card " >
< img src ="" alt ="" loading =" lazy " />
< div class =" info " >
< p class =" info-item " >
< b > Likes </ b >
</ p >
< p class =" info-item " >
< b > Views </ b >
</ p >
< p class =" info-item " >
< b > Comments </ b >
</ p >
< p class =" info-item " >
< b > Downloads </ b >
</ p >
</ div >
</ div > La API de Pixabay admite la paginación y proporciona parámetros page y per_page . Asegúrese de que cada respuesta llegue 40 objetos (predeterminado 20).
page debe ser 1 .1 .page debe devolverse al original, ya que habrá un vellón en una nueva colección de imágenes.El documento HTML ya contiene una marca de botón, en el clic en el que necesita hacer una solicitud para el siguiente grupo de imágenes y agregar el marcado a los elementos existentes de la galería.
< button type =" button " class =" load-more " > Load more </ button > En respuesta, el respaldo devuelve totalHits : el número total de imágenes que cumplen con el criterio de búsqueda (para una cuenta gratuita). Si el usuario ha llegado al final de la colección, oculte el botón y envíe un mensaje con el texto "We're sorry, but you've reached the end of search results." .
️ La siguiente funcionalidad no es necesaria para la tarea, pero será una buena práctica adicional.
Después de la primera solicitud con cada nueva búsqueda, obtenga un mensaje que dirá cuántas imágenes se encontraron ( totalHits ). Texto del mensaje - "Hooray! We found totalHits images."
SimpleLightboxAgregue una versión grande de la imagen con la biblioteca SimpleLightBox para una galería completa.
refresh() , que debe llamarse cada vez que se agrega un nuevo grupo de imágenes.Para conectar el código de la biblioteca CSS al proyecto, debe agregar otra importación, excepto como se describe en la documentación.
// Описаний в документації
import SimpleLightbox from 'simplelightbox' ;
// Додатковий імпорт стилів
import 'simplelightbox/dist/simple-lightbox.min.css' ;Realice un desplazamiento sin problemas de la página después de solicitar y reproducir cada grupo de imágenes posterior. Aquí hay un código de código, pero compruébalo tú mismo.
const { height : cardHeight } = document
. querySelector ( '.gallery' )
. firstElementChild . getBoundingClientRect ( ) ;
window . scrollBy ( {
top : cardHeight * 2 ,
behavior : 'smooth' ,
} ) ;En lugar del botón Cargar más, puede hacer una descarga interminable de imágenes mientras se desplaza. Le damos plena libertad de acción en la implementación, puede usar cualquier biblioteca.
Este proyecto fue un Sozdan en el paquete. Para el marcado y ajuste del anclaje de exposición que se seleccionará para la documentación.
parcel-project-template nash nashmi.npm install terminal.npm start .src/sass y se importan en los archivos de archivos de páginas. Por ejemplo, para index.html , el archivo de estilo se llama index.scss .src/images . El corusiano los optimiza, pero solo con la deploración de la versión del proyecto del proyecto. Todo entra en la vista de su computadora, ya que puede ser mucho tiempo en los autos débiles. Para ajustar el proyecto Depaza, es necesario dibujar muchos pelusas adicionales en la configuración de su repositorio. Vamos en Settings y en las subsecaciones Actions seleccione el elemento General .

Deslice la trama a la post -Secia, en la que la opacia se toma en la pista en el rastro de la imagen y el bien de Save . Sin estos tunks en las primeras, habrá una molestia para automatizar el proceso de implementación.

La versión del proyecto del proyecto será automática y se detendrá en las páginas de GitHub, en la página gh-pages , el tiempo de la COGD se actualiza main . Por ejemplo, una pipa recta o una pipa retirada de la piscina o un empuje recto. Para esto, debe presentar una homepage y build de script de archivo package.json , amortiguó your_username y your_repo_name para el suyo, y envíe el nombre en GitHub.
"homepage" : " https://your_username.github.io/your_repo_name/ " ,
"scripts" : {
"build" : " parcel build src/*.html --public-url /your_repo_name/ "
}, Casi vaya a la sintonización de Repository GitHub ( Settings > Pages ) y dibujará la producción de archivo de archivo desde la carpeta /root de gh-pages , si esto no es muy automático.

El estado de un despliegue de un commuty extremo es conquistado por el ícono del ego del yoditicador.
La dolorosa información detallada sobre el estado se puede empapar en el icono y en el interruptor de ventanas superior en Details .

Debido al tiempo, un par de flotas, vivo la trama, puedes hervir a fuego lento en la dirección indicada en homepage . Por ejemplo, vivo un mand para este repositorio https://goitacademy.github.io/parcel-project-semplate.
Si se abre una parcela del desierto, para matar Console de la NOR a la vista de los paquetes incorporados de archivos del proyecto CSS y JS ( 404 ). Digüe todo en Taby Irregular significado de homepage o build script en el archivo package.json .

main script especial (acción de GitHub) del archivo .github/workflows/deploy.yml .gh-pages . En el caso opuesto, en el script lógico se dará en el problema.