を使用して素晴らしい画像検索アプリケーションを作成する
38271 ワード
こんにちは読者、あなた全員がうまくやっていることを望みます🤩
このブログの記事では、HTML、CSS、JavaScript、およびAPIを使用して素晴らしい画像検索アプリケーションを構築する方法を学びます.では、始めましょう✌
目次
- Setting up Pexels API
- Build an app
pexels APIの設定
Pexels APIをアプリケーションに設定するには、まずpexelsのアカウントを作成しましょう.
ステップ1:-あなたのお気に入りのブラウザを開いてpexels.com
ステップ2:-アカウントを作成した後、右側にあなたのプロフィールのロゴに移動し、ドロップダウンをクリックします.ここで、イメージとビデオAPIをクリックしてください.
ステップ3 :- APIキーをクリックします.
ステップ4:-今すべての条件を受け入れ、APIキーを生成するためにあなたのアプリケーションに関するほとんどの情報を与えます.
この手順の後、Pexelsはあなたにメールを送ることによってあなたのアイデンティティを確認します.それで、すべての詳細を確認してください.
ステップ5:-すべての検証の後、あなたのアプリケーションにリダイレクトされ、あなたのAPIキーを取得します🔑.
を今、あなたはAPIキーを持っているので、我々のアプリのコーディングを開始することができます.
コードへの時間!
私たちのイメージ検索アプリケーションプロジェクトは、3つの部分:HTML、CSS、およびJavaScriptが含まれます.まず最初に3つのファイルを作成する必要があります.最初のファイルはHTMLファイル(index . html)、2つ目はcssファイル(style . css)、3番目はjsファイル(index . js)です.
HTMLパーツ
インデックスを開きます.HTMLファイルを入力し、次のコードを入力します.
<!DOCTYPE html>
<html>
<head>
<!--META information-->
<meta charset="UTF-8">
<meta name="description" content="Image Search App">
<meta name="keywords" content="HTML,CSS,JavaScript, images, API">
<meta name="author" content="Neha Soni">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!--End of META information-->
<title>Image Search App</title>
<!--LINK CUSTOM CSS FILE-->
<link rel="stylesheet" href="./style.css">
</head>
<body>
<h1>Image Search Gallery </h1>
<div class="container">
<!--Input box to take input from User-->
<input type="text" class="input" placeholder="Search for Images🔎"/>
<button class="search_btn">Search</button>
<!--Images to be displayed here-->
<div class="display_images"></div>
<!--Button to load more images-->
<button class="showmore">Show More</button>
</div>
<!--LINK CUSTOM JS FILE-->
<script src="./index.js"></script>
</body>
</html>
ジャバスクリプト
今ここに私たちの画像検索アプリの主な部分が来る.このファイルでは、APIからデータを取得します.APIからデータを取得するのは非同期プロセスであるため、データを取得するためにasync関数を使用します.あなたがAsync/Wait itを使う方法を知らないならばHow To Use Async/Await in JavaScript によるCatalin Pit )
一歩一歩話し合いましょう
ステップ1:-このアプリを通して使用するすべてのセレクタを格納します.
const apikey="563492ad6f917000010000019b983f3b62fe43daa92e746d4553dd35";
const input=document.querySelector("input");
const search_btn=document.querySelector(".search_btn");
const showmore_btn=document.querySelector(".showmore");
let page_num=1;
let search_text="";
let search=false;
ステップ2 :-入力テキストボックスにイベントリスナーを追加し、検索するテキストの値を格納します.input.addEventListener("input",(event)=>{
event.preventDefault();
search_text=event.target.value;
})
ステップ3 :-関数を作成するCuratedPhotos()
ページを最初にロードするときにデフォルトの画像を表示するには、関数のパラメータpageRange numを渡します.async function CuratedPhotos(page_num){
//code to be executed
}
手順4 -https://api.pexels.com/v1/curated
このエンドポイントは、Pexelsチームによってキュレーションリアルタイム写真を受け取ることができます.display_images()
ページに画像を表示する方法.async function CuratedPhotos(page_num){
// fetch the data from api
const data=await fetch(`https://api.pexels.com/v1/curated?page=${page_num}`,
{
method: "GET",
headers: {
Accept: "application/json",
Authorization: apikey, //use the apikey you have generated
},
});
const response=await data.json(); //convert the response to json
console.log(response);
display_images(response); // call the display_images method to display the images on page
}
ステップ5:今すぐ作成しましょうdisplay_images()
APIから取得したすべての画像を表示する方法.function display_images(response){
//use forEach loop to iterate on each item
response.photos.forEach((image) => {
const photo=document.createElement("div");
photo.innerHTML=`<img src=${image.src.large}>
<figcaption> Photo By: ${image.photographer}📸</figcaption>`;
document.querySelector(".display_images").appendChild(photo);
});
}
ステップ6 :-ユーザーの入力に応じて画像を検索するには、検索ボタンにイベントリスナーを追加しましょう.cleargallery()
メソッドは、キュレーション写真をクリアするために使用されます.SearchPhotos()
入力に関連する画像を検索する機能(次の手順でこのメソッドを使用します)search_btn.addEventListener("click",()=>{
if(input.value==="")
{
alert("Please enter the some text")
return;
}
cleargallery();
search=true;
SearchPhotos(search_text,page_num);
})
ステップ7:-今すぐ動作しましょうSearchPhotos()
入力テキストに応じたメソッド.SearchPhotos()
つのパラメータを持つメソッドは、クエリ(トピックを検索するトピック)とpageRank numです.https://api.pexels.com/v1/search
API.このエンドポイントを使用すると、希望するトピックのpexelsを検索できます.display_images()
ページに画像を表示する方法.async function SearchPhotos(query, page_num){
const data=await fetch(`https://api.pexels.com/v1/search?query=${query}&page=${page_num}`,
{
method: "GET",
headers: {
Accept: "application/json",
Authorization: apikey,
},
});
const response=await data.json();
console.log(response);
display_images(response);
}
手順8 -cleargallery()
メソッド:function cleargallery(){
document.querySelector(".display_images").innerHTML="";
page_num=1;
}
OK、アプリを完了する1つのより多くのステップ🥱.ステップ9 :-イベントリスナーを追加ボタンを表示します.このボタンの目的は、それをクリックすると、より多くの画像がページ上の負荷を取得するということです.
SearchPhotos()
メソッド.showmore_btn.addEventListener("click", () => {
if(!search){
page_num++;
CuratedPhotos(page_num);
}
else{
if(search_text.value==="")
return;
page_num++;
SearchPhotos(search_text,page_num);
}
})
最後に、CuratedPhotos()
関数は、ページの正確な再読み込み時に関数を開始します.CuratedPhotos(page_num);
完全なJavaScriptコード
インデックス.js
const apikey="563492ad6f917000010000019b983f3b62fe43daa92e746d4553dd35"; //use the apikey you have generated
const input=document.querySelector("input");
const search_btn=document.querySelector(".search_btn");
const showmore_btn=document.querySelector(".showmore");
let page_num=1;
let search_text="";
let search=false;
input.addEventListener("input",(event)=>{
event.preventDefault();
search_text=event.target.value;
})
search_btn.addEventListener("click",()=>{
if(input.value==="")
{
alert("Please enter the some text")
return;
}
cleargallery();
search=true;
SearchPhotos(search_text,page_num);
})
function cleargallery(){
document.querySelector(".display_images").innerHTML="";
page_num=1;
}
async function CuratedPhotos(page_num){
// fetch the data from api
const data=await fetch(`https://api.pexels.com/v1/curated?page=${page_num}`,
{
method: "GET",
headers: {
Accept: "application/json",
Authorization: apikey, //use the apikey you have generated
},
});
const response=await data.json(); //convert the response to json
console.log(response);
display_images(response); // call the display_images method to display the images on page
}
function display_images(response){
//use forEach loop to iterate on each item
response.photos.forEach((image) => {
const photo=document.createElement("div");
photo.innerHTML=`<img src=${image.src.large}>
<figcaption> Photo By: ${image.photographer}📸</figcaption>`;
document.querySelector(".display_images").appendChild(photo);
});
}
async function SearchPhotos(query, page_num){
const data=await fetch(`https://api.pexels.com/v1/search?query=${query}&page=${page_num}`,
{
method: "GET",
headers: {
Accept: "application/json",
Authorization: apikey,
},
});
const response=await data.json();
console.log(response);
display_images(response);
}
showmore_btn.addEventListener("click", () => {
if(!search){
page_num++;
CuratedPhotos(page_num);
}
else{
if(search_text.value==="")
return;
page_num++;
SearchPhotos(search_text,page_num);
}
})
CuratedPhotos(page_num);
今、我々のアプリは、我々はそれを美化する必要が働いている✨. だからスタイルを我々のアプリにいくつかのCSSを追加することができます🎨.CSSパーツ
スタイル.CSS
*
{
margin: 0;
padding: 0;
font-family: "Poppins", sans-serif;
}
h1{
text-align: center;
padding: 10px;
}
.container
{
border-radius: 5px;
margin: 5px;
padding: 15px;
box-shadow: 0 10px 40px -10px rgb(0 64 128 / 10%);
border: 1px solid #eee;
}
input
{
padding: 10px;
border: 1px solid #ddd;
background: #f9fafc;
width: 40%;
font-size: 25px;
margin-left: 25%;
}
.display_images{
width: 80%;
margin: 100px auto;
display: grid;
grid-template-columns: repeat(auto-fit,minmax(300px,1fr));
grid-gap:30px;
}
.display_images img
{
width: 90%;
border-radius: 5px;
height: 240px;
cursor: pointer;
}
figcaption
{
font-weight: bold;
font-size: 15px;
}
button{
background-color: #4CAF50;
color: white;
font-size: 1.5rem;
padding: 10px;
cursor: pointer;
}
.showmore{
margin: 0 auto;
display: block;
}
あなたは今我々のアプリで作業を終えている👏.
私はまた、アプリを展開して、ここでライブデモ🚀
あなたが学習を楽しんで、それが役に立つならば、好きにしてください🤝
読書ありがとう😃
私は❤ 君と共に繋ぐGitHub
何か疑問やフィードバックがあればコメント欄でお知らせください.
🙌 サポート
私の次のブログ記事を見て、気をつけて!
ハッピーラーニング😃😃
Reference
この問題について(を使用して素晴らしい画像検索アプリケーションを作成する), 我々は、より多くの情報をここで見つけました https://dev.to/nehasoni__/create-an-amazing-image-search-app-using-pexels-api-2cfテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol