อ่านในภาษาอื่น ๆ : ยูเครน, อังกฤษ
goit-js-hw-11 ถูกสร้างขึ้นGitHub Pagesasync/awaitPrettierสร้างด้านหน้าของแอปพลิเคชันของการค้นหาและการดูรูปภาพตามคำหลัก เพิ่มการออกแบบองค์ประกอบอินเตอร์เฟส ดูการสาธิตวิดีโอของแอปพลิเคชัน
แบบฟอร์มแรกมีอยู่ในเอกสาร HTML ผู้ใช้จะป้อนบรรทัดเพื่อค้นหาในกล่องข้อความและแบบฟอร์มของแบบฟอร์มจะต้องทำตามคำขอ HTTP
< form class =" search-form " id =" search-form " >
< input
type =" text "
name =" searchQuery "
autocomplete =" off "
placeholder =" Search images... "
/>
< button type =" submit " > Search </ button >
</ form > ใช้ API สาธารณะ Pixabay สำหรับการสนับสนุน ลงทะเบียนรับคีย์การเข้าถึงที่ไม่ซ้ำกันของคุณและทำความคุ้นเคยกับเอกสาร
รายการตัวเลือกสตริงแบบสอบถามที่คุณต้องระบุ:
key คือคีย์การเข้าถึงที่ไม่ซ้ำกันของคุณไปยัง APIq คือคำศัพท์สำหรับการค้นหา สิ่งที่ผู้ใช้จะป้อนimage_type - ประเภทรูปภาพ จำเป็นต้องใช้ภาพถ่ายเท่านั้นดังนั้นใส่ photoorientation - การวางแนวของภาพถ่าย ใส่ค่าของ horizontalsafesearch - ตัวกรองตามอายุ ใส่ค่าที่ trueคำตอบจะเป็นอาร์เรย์ของรูปภาพที่เป็นไปตามเกณฑ์ของพารามิเตอร์การสืบค้น แต่ละภาพอธิบายโดยวัตถุที่คุณสนใจเฉพาะคุณสมบัติต่อไปนี้:
webformatURL - ลิงก์ไปยังภาพเล็ก ๆ สำหรับรายการการ์ดlargeImageURL - เชื่อมโยงกับภาพขนาดใหญ่tags - บรรทัดที่มีคำอธิบายภาพ เหมาะสำหรับแอตทริบิวต์ altlikes - จำนวนไลค์views - จำนวนการดูcomments - จำนวนความคิดเห็นdownloads - จำนวนการดาวน์โหลด หากการสำรองข้อมูลส่งคืนอาร์เรย์ที่ว่างเปล่าก็ไม่มีอะไรเหมาะสมที่จะพบ ในกรณีนี้แสดงข้อความพร้อมข้อความ "Sorry, there are no images matching your search query. Please try again." - ใช้ไลบรารี Notiflix สำหรับข้อความ
องค์ประกอบ div.gallery มีอยู่ในเอกสาร HTML เป็นครั้งแรกและจะต้องเช่าสำหรับเครื่องหมายบัตรรูปภาพ เมื่อค้นหาคำหลักใหม่คุณต้องทำความสะอาดเนื้อหาของแกลเลอรี่อย่างสมบูรณ์เพื่อไม่ให้ผสมผลลัพธ์
< div class =" gallery " >
<!-- Картки зображень -->
</ div >เทมเพลตมาร์กอัปการ์ดของภาพเดียวสำหรับแกลเลอรี่
< 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 > Pixabay API รองรับการแบ่งหน้าและจัดเตรียมพารามิเตอร์ page และ per_page ตรวจสอบให้แน่ใจว่าแต่ละคำตอบมี 40 วัตถุ (ค่าเริ่มต้น 20)
page ต้องเป็น 11page จะต้องถูกส่งกลับไปยังคำดั้งเดิมเนื่องจากจะมีขนแกะในคอลเลกชันภาพใหม่เอกสาร HTML มีการทำเครื่องหมายปุ่มแล้วในการคลิกที่คุณต้องทำการร้องขอสำหรับกลุ่มภาพต่อไปและเพิ่มการทำเครื่องหมายในองค์ประกอบที่มีอยู่ของแกลเลอรี่
< button type =" button " class =" load-more " > Load more </ button > ในการตอบสนองการสำรองข้อมูลจะส่งคืนคุณสมบัติ totalHits - จำนวนภาพทั้งหมดที่ตรงตามเกณฑ์การค้นหา (สำหรับบัญชีฟรี) หากผู้ใช้ถึงจุดสิ้นสุดของคอลเลกชันให้ซ่อนปุ่มและส่งข้อความด้วยข้อความ "We're sorry, but you've reached the end of search results." -
ฟังก์ชั่นต่อไปนี้ไม่จำเป็นสำหรับงาน แต่จะเป็นการฝึกฝนที่ดี
หลังจากคำขอครั้งแรกกับการค้นหาใหม่แต่ละครั้งรับข้อความที่จะบอกว่าพบภาพจำนวนเท่าใด ( totalHits ) ข้อความข้อความ - "Hooray! We found totalHits images."
SimpleLightboxเพิ่มภาพเวอร์ชันขนาดใหญ่ด้วยไลบรารี SimpleLightBox สำหรับแกลเลอรี่เต็มรูปแบบ
refresh() ซึ่งจะต้องเรียกว่าทุกครั้งที่มีการเพิ่มกลุ่มภาพใหม่ในการเชื่อมต่อรหัสไลบรารี CSS เข้ากับโครงการคุณต้องเพิ่มการนำเข้าอื่นยกเว้นตามที่อธิบายไว้ในเอกสารประกอบ
// Описаний в документації
import SimpleLightbox from 'simplelightbox' ;
// Додатковий імпорт стилів
import 'simplelightbox/dist/simple-lightbox.min.css' ;ทำให้การเลื่อนหน้าอย่างราบรื่นของหน้าหลังจากร้องขอและเล่นแต่ละกลุ่มภาพที่ตามมา นี่คือรหัสรหัส แต่เข้าใจด้วยตัวคุณเอง
const { height : cardHeight } = document
. querySelector ( '.gallery' )
. firstElementChild . getBoundingClientRect ( ) ;
window . scrollBy ( {
top : cardHeight * 2 ,
behavior : 'smooth' ,
} ) ;แทนที่จะเป็นปุ่มโหลดเพิ่มเติมคุณสามารถดาวน์โหลดรูปภาพได้อย่างไม่สิ้นสุดขณะเลื่อน เราให้อิสระในการดำเนินการอย่างเต็มที่ในการดำเนินการคุณสามารถใช้ห้องสมุดใด ๆ
โครงการนี้เป็น Sozdan ที่พัสดุ สำหรับการทำเครื่องหมายและการปรับตัวของจุดยึดของการเปิดรับที่จะเลือกสำหรับเอกสาร
parcel-project-template แนชชี่npm installnpm startsrc/sass Papquet และนำเข้าในไฟล์ไฟล์ของหน้า ตัวอย่างเช่นสำหรับ index.html ไฟล์สไตล์เรียกว่า index.scsssrc/images Chorusian ปรับให้เหมาะสม แต่ด้วยการลดลงของโครงการโครงการ ทุกอย่างเข้ามาในสายตาของคอมพิวเตอร์ของคุณดังนั้นอาจมีเวลามากในรถที่อ่อนแอ ในการปรับโครงการ DePaza จำเป็นต้องดึง Shags เพิ่มเติมจำนวนมากเกี่ยวกับการตั้งค่าที่เก็บของคุณ มาบนแท็บ Settings และในการ Actions ย่อยให้เลือกรายการ General

เลื่อนพล็อตไปยังโพสต์ -Secia ซึ่ง opacia ถูกนำมาใช้ในการติดตามบนร่องรอยของภาพและเห็นแก่ Save หากไม่มี tunks เหล่านี้ใน scoops จะมีความไม่แน่นอนสำหรับการทำให้กระบวนการของการปรับใช้เป็นไปโดยอัตโนมัติ

เวอร์ชันโครงการของโครงการจะเป็นไปโดยอัตโนมัติและหยุดบนหน้า GitHub ใน gh-pages WET เวลาของ COGD จะได้รับการอัปเดต main เปียกชื้น ตัวอย่างเช่น pusha ตรงหรือ pusha ที่ถูกทดสอบโดยสระว่ายน้ำหรือ pusha ตรง สำหรับสิ่งนี้คุณต้องยื่น homepage ของไฟล์ package.json และ build สคริปต์, muffled your_username และ your_repo_name สำหรับตัวคุณเองและส่งชื่อบน gitHub
"homepage" : " https://your_username.github.io/your_repo_name/ " ,
"scripts" : {
"build" : " parcel build src/*.html --public-url /your_repo_name/ "
}, เกือบจะเข้าสู่การปรับแต่ง GITHUB ( Settings > Pages ) และจะดึงการผลิตไฟล์ไฟล์จากโฟลเดอร์ /root ของ gh-pages หากถ้านี่ไม่ใช่อัตโนมัติมาก

สถานะของการปรับใช้การเดินทางที่รุนแรงนั้นถูกยึดครองโดยไอคอนของอัตตาของ Yoditicator
ข้อมูลรายละเอียดที่เจ็บปวดเกี่ยวกับสถานะสามารถแช่ในไอคอนและในสวิตช์ Windows ที่เกินใน Details

เนื่องจากเวลามีกองยานสองสามตัวฉันใช้ชีวิตพล็อตคุณสามารถเคี่ยวตามที่อยู่ที่ระบุไว้ใน homepage ตัวอย่างเช่นฉันใช้ชีวิตแมนสำหรับที่เก็บ https://goitacademy.github.io/parcel-project-template
หากมีการเปิดพล็อตของทะเลทรายเพื่อฆ่าแท็บ Console ของ NOR เพื่อสายตาของแพ็คที่จัดทำขึ้นของไฟล์โครงการ CSS และ JS ( 404 ) นกกระสาทั้งหมดในความหมายที่ผิดปกติของ homepage หรือ build สคริปต์ในไฟล์ package.json

main สคริปต์พิเศษ (GitHub) จากไฟล์. .github/workflows/deploy.ymlgh-pages VET ในกรณีตรงกันข้ามในสคริปต์ลอจิกจะได้รับในปัญหา