Advertisement
lemansky

Untitled

Nov 12th, 2023 (edited)
839
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
HTML 5.35 KB | None | 0 0
  1. <!doctype html>
  2. <html lang="en">
  3.   <head>
  4.     <meta charset="utf-8">
  5.     <meta name="viewport" content="width=device-width, initial-scale=1">
  6.     <title>Bootstrap demo</title>
  7.     <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-Zenh87qX5JnK2Jl0vWa8Ck2rdkQ2Bzep5IDxbcnCeuOxjzrPF/et3URy9Bv1WTRi" crossorigin="anonymous">
  8.     <style>
  9.       body,html{
  10.         height:100%;
  11.       }
  12.       body{
  13.         min-height: 100%;
  14.       }
  15.       .body{
  16.         min-height: 100%;
  17.         height: auto !important;
  18.         margin-bottom:-120px;
  19.       }
  20.       .pusher{
  21.         height:72px;
  22.       }
  23.       .footer{
  24.         height:72px;
  25.         box-sizing: border-box;
  26.       }
  27.     </style>
  28.  
  29.     <script>
  30.       document.addEventListener('DOMContentLoaded', () => {
  31.         let animeArr = ['Bleach', 'Naruto', 'JoJo\'s Bizarre Adventure', 'Demon Slayer', 'My Hero Academia', 'One Piece'];
  32.         let poster = document.querySelectorAll('.card-img-top');
  33.         let animeItem = document.querySelector('.row-cols-xl-4 > .col');
  34.         getAnimes(animeArr).then(x => {
  35.             for(let i = 0; i < animeArr.length; i++){
  36.              if(i != 0){
  37.                let clone = animeItem.cloneNode(true);
  38.                animeItem.parentNode.append(clone);
  39.              }
  40.              poster = document.querySelectorAll('.card-img-top');
  41.              poster[i].nextElementSibling.firstElementChild.innerText = animeArr[i];
  42.              poster[i].src = x[i].img.images.jpg.image_url;
  43.              poster[i].nextElementSibling.firstElementChild.nextElementSibling.innerText = x[i].quote;
  44.            }
  45.        });
  46.  
  47.      });
  48.  
  49.      // const delay = (ms = 1100) => new Promise(r => setTimeout(r, ms));
  50.  
  51.       const getAnimes = async items => {
  52.         let results = [];
  53.         for (let index = 0; index < items.length; index++) {
  54.          // await delay();
  55.          const res1 = await fetch('https://api.jikan.moe/v4/anime?q='+ items[index] +'&sfw').then(r => r.json());
  56.           const res2 = await fetch("https://kitsu.io/api/edge/anime?filter[text]=" + items[index]).then(r => r.json());
  57.           results.push({img: res1.data[0], quote: res2.data[0].attributes.synopsis});
  58.         }
  59.         return results;
  60.       };
  61.      
  62.     </script>      
  63.   </head>
  64.   <body>
  65.     <div class="body">
  66.     <div class="bg-light">
  67.       <div class="container">
  68.         <div class="row justify-content-between justify-content-lg-start align-items-center">
  69.           <div class="col-auto">
  70.             <h5 class="text-primary mb-0 fw-bold">JSON Example</h5>
  71.           </div>
  72.           <div class="col">
  73.             <div class="navbar navbar-expand-lg text-end text-lg-start justify-content-end">
  74.               <button class="navbar-toggler" data-bs-target="#menu" data-bs-toggle="collapse">
  75.                 <span class="navbar-toggler-icon"></span>
  76.               </button>
  77.               <div class="collapse navbar-collapse justify-content-lg-between" id="menu">
  78.                 <ul class="navbar-nav">
  79.                   <li class="nav-item">
  80.                     <a href="" class="nav-link text-primary">Anime</a>
  81.                   </li>
  82.                   <li class="nav-item">
  83.                     <a href="" class="nav-link text-primary">Anime</a>
  84.                   </li>
  85.                   <li class="nav-item">
  86.                     <a href="" class="nav-link text-primary">Anime</a>
  87.                   </li>
  88.                   <li class="nav-item">
  89.                     <a href="" class="nav-link text-primary">Anime</a>
  90.                   </li>
  91.                 </ul>
  92.               </div>
  93.             </div>
  94.           </div>
  95.         </div>        
  96.       </div>  
  97.     </div>          
  98.     <div class="bg-info py-5">
  99.         <div class="container my-3">
  100.           <div class="row">
  101.             <div class="col text-center">
  102.               <h1 class="fw-bold">Anime List</h1>
  103.               <span>JSON Fetch Example</span>
  104.             </div>
  105.           </div>
  106.         </div>
  107.     </div>  
  108.  
  109.     <div class="container mt-4">
  110.       <div class="row justify-content-lg-center">
  111.         <div class="col-12 col-lg-5 mx-3">
  112.           <input type="text" class="form-control" placeholder="Look for Anime by title">
  113.         </div>
  114.         <div class="col-12 col-lg-5 mx-3">
  115.           <select name="" id="" class="form-select">
  116.             <option value="">Select Anime</option>
  117.           </select>
  118.         </div>
  119.       </div>
  120.       <div class="mt-4 row row-cols-xl-4 row-cols-md-3 row-cols-2 justify-content-center gy-5">
  121.         <div class="col">
  122.           <div class="card border-info">
  123.             <img src="https://placehold.co/450x300" alt="" class="card-img-top">
  124.             <div class="card-body text-center">
  125.                 <h5 class="mb-1">Anime Title</h5>  
  126.                 <div class="mb-4">
  127.                   Quote
  128.                 </div>
  129.             </div>
  130.           </div>
  131.         </div>
  132.       </div>
  133.     </div>
  134.     <div class="pusher"></div>  
  135.  </div>
  136.     <div class="bg-dark text-white text-center p-4 mt-5 footer">
  137.       Copyright &copy; Your Website 2024
  138.     </div>
  139.  
  140.  
  141.     <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-OERcA2EqjJCMA+/3y+gxIOqMEjwtxJY7qPCqsdltbNJuaOe923+mo//f6V8Qbsw3" crossorigin="anonymous"></script>
  142.   </body>
  143. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement