Как сделать динамический поиск и выпадающие варианты заголовков статьей?

Делаю проект на js используя базы данных firebase.Требуется реализовать поиск по заголовком статьей Сделать выпадающие варианты заголовков при в введение в поиск определённых слов или даже слогов. Надо чтобы поиск работал не только на страничке, где находятся сами статьи, но и на html-документах где свёрстан поиск в шапке.Не понимаю, как это сверстать и реализовать.

document.querySelector('.search_input').oninput = function () {
    let val = this.value.trim();
    let elasticItems = document.querySelectorAll('.news-title');
    if (val != '') {
        elasticItems.forEach(function (elem) {
            if (elem.innerText.search(val) == -1) {
                elem.classList.add('hide');
                elem.innerHTML = elem.innerText;
            }
            else {
                elem.classList.remove('hide');
                let str = elem.innerText;
                elem.innerHTML = insertMark(str, elem.innerText.search(val), val.length);
            }
        });
    }
    else {
        elasticItems.forEach(function (elem) {
            elem.classList.remove('hide');
            elem.innerHTML = elem.innerText;
        });
    }
}

function insertMark(string, pos, len) {
    return string.slice(0, pos) + '<mark>' + string.slice(pos, pos + len) + '</mark>' + string.slice(pos + len);
}
* {
  margin: 0;
  padding: 0;
  list-style: none;
  text-decoration: none;
  font-family: "Oswald", sans-serif;
 
}

html,
body {
  height: auto;
  background: linear-gradient(to right, #b92b27, #1565c0)
}

.navbar {
  height: 60px !important;
}
.navbar-brand{
  color: #63ADD0;

}.navbar-brand:hover{
  text-decoration:none;
  color: #63ADD0;
}
.nav-item {
  font-size: 22px;
  /* padding-right: 20px;
  padding-left: 20px; */
}

.searchbar {
  margin-bottom: auto;
  margin-top: auto;
  height: 45px;
  background-color: #63add0;
  border-radius: 30px;
  width:auto;

}

.searchbar:focus {
  margin-bottom: auto;
  margin-top: auto;
  height: 45px;
  background-color: #63add0;
  border-radius: 30px;
  width:auto;
  background-color: rgba(0, 0, 0, 0.3);
}


.search_input {
  color: white;
  border: 0;
  outline: 0;
  background: none;
  width: 0;
  caret-color: transparent;
  transition: width 0.4s linear; 
  margin-top:10px;
}
.search_input {
  padding: 0 10px;
}

.searchbar:hover > .search_input {
 
  width: 200px;
  caret-color: white;
  transition: width 0.4s linear;
}
.search_icon {
  box-sizing: border-box;
  height: auto;
  width: 30px;
  float: right;
  display: flex;
  align-items: center;
  color: white;
  text-decoration: none;
  margin-top:2px;
  margin-right: 3px;
}
.search_icon:hover{
  color: #6c757d;
}
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.1/css/bootstrap.min.css"
    integrity="sha384-VCmXjywReHh4PwowAiWNagnWcLhlEJLA5buUprzK8rxFgeH0kww/aWY76TfkUoSX" crossorigin="anonymous" />
  <link href="https://fonts.googleapis.com/css2?family=Oswald:wght@200;300;400;469;500;700&display=swap"
    rel="stylesheet">
  <link rel="stylesheet" href="styles/news.css" />

  <title>GoodGame.by</title>
</head>
<body>


 <div class="sticky-top">

    <nav class="navbar navbar-expand-lg navbar-light bg-light">
      <div class="row">
        <div class="col-md-3 text-center ">
          <svg width="35px" height="35px" viewBox="0 0 16 16" class="bi bi-controller contriller mb-1 "
            fill="currentColor" style="color:#63ADD0" xmlns="http://www.w3.org/2000/svg">
            <path fill-rule="evenodd"
              d="M11.119 2.693c.904.19 1.75.495 2.235.98.407.408.779 1.05 1.094 1.772.32.733.599 1.591.805 2.466.206.875.34 1.78.364 2.606.024.815-.059 1.602-.328 2.21a1.42 1.42 0 0 1-1.445.83c-.636-.067-1.115-.394-1.513-.773a11.307 11.307 0 0 1-.739-.809c-.126-.147-.25-.291-.368-.422-.728-.804-1.597-1.527-3.224-1.527-1.627 0-2.496.723-3.224 1.527-.119.131-.242.275-.368.422-.243.283-.494.576-.739.81-.398.378-.877.705-1.513.772a1.42 1.42 0 0 1-1.445-.83c-.27-.608-.352-1.395-.329-2.21.024-.826.16-1.73.365-2.606.206-.875.486-1.733.805-2.466.315-.722.687-1.364 1.094-1.772.486-.485 1.331-.79 2.235-.98.932-.196 2.03-.292 3.119-.292 1.089 0 2.187.096 3.119.292zm-6.032.979c-.877.185-1.469.443-1.733.708-.276.276-.587.783-.885 1.465a13.748 13.748 0 0 0-.748 2.295 12.351 12.351 0 0 0-.339 2.406c-.022.755.062 1.368.243 1.776a.42.42 0 0 0 .426.24c.327-.034.61-.199.929-.502.212-.202.4-.423.615-.674.133-.156.276-.323.44-.505C4.861 9.97 5.978 9.026 8 9.026s3.139.943 3.965 1.855c.164.182.307.35.44.505.214.25.403.472.615.674.318.303.601.468.929.503a.42.42 0 0 0 .426-.241c.18-.408.265-1.02.243-1.776a12.354 12.354 0 0 0-.339-2.406 13.753 13.753 0 0 0-.748-2.295c-.298-.682-.61-1.19-.885-1.465-.264-.265-.856-.523-1.733-.708-.85-.179-1.877-.27-2.913-.27-1.036 0-2.063.091-2.913.27z" />
            <path
              d="M11.5 6.026a.5.5 0 1 1-1 0 .5.5 0 0 1 1 0zm-1 1a.5.5 0 1 1-1 0 .5.5 0 0 1 1 0zm2 0a.5.5 0 1 1-1 0 .5.5 0 0 1 1 0zm-1 1a.5.5 0 1 1-1 0 .5.5 0 0 1 1 0zm-7-2.5h1v3h-1v-3z" />
            <path
              d="M3.5 6.526h3v1h-3v-1zM3.051 3.26a.5.5 0 0 1 .354-.613l1.932-.518a.5.5 0 0 1 .258.966l-1.932.518a.5.5 0 0 1-.612-.354zm9.976 0a.5.5 0 0 0-.353-.613l-1.932-.518a.5.5 0 1 0-.259.966l1.932.518a.5.5 0 0 0 .612-.354z" />
          </svg>
          <a class="navbar-brand" href="main.html">
            <h4>GameLand</h4>
          </a>
          <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent"
            aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
            <span class="navbar-toggler-icon"></span>
          </button>
        </div>
        <div class="col-md-9 text-center ">
          <div class="collapse navbar-collapse" id="navbarSupportedContent">
            <ul class="navbar-nav col-6 mr-auto text-center">
              <li class="nav-item mr-4 ml-4">
                <a class="nav-link" href="main.html">Главная</a>
              </li>
              <li class="nav-item mr-4 ml-4">
                <a class="nav-link " href="news.html">Новости</a>
              </li>
              <li class="nav-item mr-4 ml-4">
                <a class="nav-link " href="calendar.html">Календарь</a>
              </li>
              <li class="nav-item mr-4 ml-4">
                <a class="nav-link " href="contacts.html">Контакты</a>
              </li>

            </ul>
            <ul class="navbar-nav col-6 mr-auto">
              <li class="nav-item mr-1 ml-2">
                <a class="nav-link font-weight-bold " href="authentification.html">Вход</a>
              </li>
              <li class="nav-item mr-1 ml-2">
                <a class="nav-link font-weight-bold " href="registration.html">Регистрация</a>
              </li>
              <li class="nav-item mr-3 ml-3">
                <div class="container h-100">
                  <div class="d-flex justify-content-center h-100">
                    <div class="searchbar">
                      <input class="search_input" type="text" name="" placeholder="Search...">
                      <a href="#" class="search_icon">
                        <svg width="25px" height="25px" viewBox="0 0 16 16" class="bi bi-search  search   mt-2 mr-2 "
                          fill="currentColor" xmlns="http://www.w3.org/2000/svg">
                          <path fill-rule="evenodd"
                            d="M10.442 10.442a1 1 0 0 1 1.415 0l3.85 3.85a1 1 0 0 1-1.414 1.415l-3.85-3.85a1 1 0 0 1 0-1.415z" />

                          <path fill-rule="evenodd"
                            d="M6.5 12a5.5 5.5 0 1 0 0-11 5.5 5.5 0 0 0 0 11zM13 6.5a6.5 6.5 0 1 1-13 0 6.5 6.5 0 0 1 13 0z" />
                        </svg>
                        </i>
                      </a>
                    </div>
                  </div>
                </div>
              </li>
            </ul>


          </div>
        </div>
      </div>
    </nav>
  </div>

  <div class="container newsee">
    <div class="row">
      <div class="col-8 blok1">
        <div class="row justify-content-md-center">
          <div class="col-md-12">
            <a href="someNews.html" style="text-decoration: none; color: inherit;">
              <h4 class="news-title">От пистолета до гарпуна: Виды оружия в новом трейлере ремейка XIII</h4>
            </a>
            <a href="someNews.html">
              <p>
                Издательство Microids и студия PlayMagic представили новый трейлер ремейка шутера XIII, который посвящен видам оружия в игре. Тринадцатый сможет убивать врагов с помощью обширного арсенала: пистолеты, дробовики, револьверы, арбалеты и даже гарпун попадут в руки героя.
              </p>
            </a>
            <a href="someNews.html">
              <img src="images/article22.jpg" class="img-fluid" alt="">
            </a>
            <hr>
          </div>
        </div>
        <div class="row justify-content-md-center">
          <div class="col-md-12">
            <a href="someNews.html" style="text-decoration: none; color: inherit;">
              <h4 class="news-title">Летние анонсы игр включали значительно больше женских протагонистов, чем в прошлые годы</h4>
            </a>
            <a href="someNews.html">
              <p>
                Несмотря на отмену всех выставок и мероприятий из-за коронавируса,
                 этим летом прошли онлайновые аналоги, в рамках которых было анонсировано множество игр. Согласно новым подсчетам, в этом году количество женских протагонистов ...
              </p>
            </a>
            <a href="someNews.html">
              <img src="images/article21.jpg" class="img-fluid" alt="">
            </a>
            <hr>
          </div>
        </div>
        <div class="row justify-content-md-center">
          <div class="col-md-12">
            <a href="someNews.html" style="text-decoration: none; color: inherit;">
              <h4 class="news-title">Одним из спин-оффов "Ходячих мертвецов" может стать анимационная антология</h4>
            </a>
            <a href="someNews.html">
              <p>
                Основное шоу "Ходячие мертвецы" подходит к концу и должно завершится после 11 сезона, но франшиза продолжит развиваться. 
                У AMC остаются в эфире два спин-оффа: "Бойтесь ходячих мертвецов" и "Мир за пределами". Также в разработке находятся фильмы про шерифа Рика Граймса
                 и сериал про Дэррила и Кэрол.
              </p>
            </a>
            <a href="someNews.html">
              <img src="images/article17.jpg" class="img-fluid" alt="">
            </a>
            <hr>
          </div>
        </div>
        <div class="row justify-content-md-center">
          <div class="col-md-12">
            <a href="someNews.html" style="text-decoration: none; color: inherit;">
              <h4 class="news-title">Майк Пондсмит про Cyberpunk 2077: Киберпанк это не только ночь, дождь и неон</h4>
            </a>
            <a href="someNews.html">
              <p>
                Создатель вселенной Cyberpunk Майк Пондсмит дал большое интервью Allegro. 
                Он рассказал о работе над настольной игрой, о своих взаимоотношениях с CD Projekt RED и о том, чего ожидать от Cyberpunk 2077.
              </p>
            </a>
            <a href="someNews.html">
              <img src="images/article13.jpg" class="img-fluid" alt="">
            </a>
            <hr>
          </div>
        </div>
        <div class="row justify-content-md-center">
          <div class="col-md-12">
            <a href="someNews.html" style="text-decoration: none; color: inherit;">
              <h4 class="news-title">Инсайдер: Square Enix разрабатывает для PS5 улучшенную версию Final Fantasy 7</h4>
            </a>
            <a href="someNews.html">
              <p>
                На форуме ResetEra инсайдер под ником Navtra, который ранее слил множество анонсов с презентации PS5, включая Final Fantasy XVI, рассказал, что Square Enix готовит улучшенную версию первой части Final Fantasy VII для PS5.
              </p>
            </a>
            <a href="someNews.html">
              <img src="images/article28.jpg" class="img-fluid" alt="">
            </a>
            <hr>
          </div>
        </div>
        <div class="row justify-content-md-center">
          <div class="col-md-12">
            <a href="someNews.html" style="text-decoration: none; color: inherit;">
              <h4 class="news-title">Патч Red Dead Online сломал игру — пропали звери, NPC, некоторые игроки не могут стрелять</h4>
            </a>
            <a href="someNews.html">
              <p>
                Недавний патч Red Dead Online, призванный решить ряд проблем, возникших после обновления, окончательно
                сломал
                игру. Сотни геймеров публикуют в социальных сетях примеры того, что сейчас происходит с игрой.
              </p>
            </a>
            <a href="someNews.html">
              <img src="images/article6.jpg" class="img-fluid" alt="">
            </a>
            <hr>
          </div>
        </div>
        <div class="row  justify-content-md-center">
          <div class="col-md-12">
            <a href="#" style="text-decoration: none; color: inherit;">
              <h4 class="news-title">Чудесная Япония — концепт-арты Ghost of Tsushima</h4>
            </a>
            <p>
              Студия Sucker Punch через несколько недель после успешного релиза Ghost of Tsushima поделилась концептами
              и
              артами самурайского экшена. На них представлены локации, сражения, персонажи, арты в стиле открыток,
              зарисовки
              персонажей и оружия.
            </p>
            <a href="#">
              <img src="images/article8.jpg" class="img-fluid" alt="">
            </a>
            <hr />
          </div>
        </div>
        <div class="row justify-content-md-center">
          <div class="col-md-12 justify-content-md-center">
            <a href="#" style=" text-decoration: none; color: inherit;">
              <h4 class="news-title">По мотивам Death Stranding анонсирован графический роман</h4>
            </a>
            <p>
              В онлайн-магазине Amazon появилась страница романа Death Stranding, который основан на одноименной игре
              Хидео
              Кодзимы. Автором новеллы выступил один из сценаристов тайтла — Кендзи Яно (Хитори Нодзима).
            </p>
            <a href="#">
              <img src="images/article10.jpg" class="img-fluid" alt="">
            </a>
            <hr />
          </div>
        </div>
        <div class="row  justify-content-md-center">
          <div class="col-md-12 ">
            <a href="#" style="text-decoration: none; color: inherit; color: blanchedalmond;">
              <h4 class="news-title">Новый скриншот и немного деталей Spider-Man: Miles Morales</h4>
            </a>
            <p>
              В Entertainment Weekly вышел большой материал, посвященный двум грядущим играм во вселенной Marvel —
              Marvel's
              Avengers и Spider-Man: Miles Morales. И если про первую уже многое известно, а релиз состоится меньше чем
              через месяц, то про Майлза Моралеса деталей значительно меньше.
            </p>
            <a href="#">
              <img src="images/article9.jpg" class="img-fluid" alt="">
            </a>
            <hr />
          </div>
        </div>
      </div>
      
        <div class="col-4 blok2">
          <div class="col-12">
            <h2 id="sideHeader">Последние Новости</h2>
          </div>
          <div class="row">
          <div class="col-md-12">
            
              <div class="col-md-12 my-3">
                <div class="card mincard">
                  <img class="card-img-top" src="./images/article18.jpg" alt="Card image cap">
                  <div class="card-body">
                    <h5 class="card-title">Konami: P.T. не получится перенести на PS5 </h5>
                  </div>
                </div>
              </div>
               <div class="col-md-12 my-3">
                <div class="card mincard">
                  <img class="card-img-top" src="./images/article23.jpg" alt="Card image cap">
                  <div class="card-body">
                    <h5 class="card-title">Новая версия PlayStation Store запустится с 21 по 26 октября</h5>
                  </div>
                </div>
              </div>
              <div class="col-md-12 my-3">
                <div class="card mincard">
                  <img class="card-img-top" src="./images/article19.jpg" alt="Card image cap">
                  <div class="card-body">
                    <h5 class="card-title">Актер, исполнивший роль Коннора в Detroit: Become Human, озвучил автомат с газировкой в Cyberpunk 2077</h5>
                  </div>
                </div>
              </div>
    
              <div class="col-md-12 my-3">
                <div class="card mincard">
                  <img class="card-img-top" src="./images/article20.jpg" alt="Card image cap">
                  <div class="card-body">
                    <h5 class="card-title">DOOM запустили на овцах в Minecraft </h5>
                  </div>
              </div>    
            </div>
            <div class="col-md-12 my-3">
              <div class="card mincard">
                <img class="card-img-top" src="./images/article20.jpg" alt="Card image cap">
                <div class="card-body">
                  <h5 class="card-title">DOOM запустили на овцах в Minecraft </h5>
                </div>
            </div>    
          </div>
          <div class="col-md-12 my-3">
            <div class="card mincard">
              <img class="card-img-top" src="./images/article16.jpg" alt="Card image cap">
              <div class="card-body">
                <h5 class="card-title">Трейлер пострелизной поддержки Assassin's Creed Valhalla </h5>
              </div>
          </div>    
        </div>
        <div class="col-md-12 my-3">
          <div class="card mincard">
            <img class="card-img-top" src="./images/article52.jpg" alt="Card image cap">
            <div class="card-body">
              <h5 class="card-title">Куда пропал весь "панк" из Cyberpunk 2077 </h5>
            </div>
        </div>    
      </div>
          </div>
        </div>
        </div>
     
    </div>
  </div>


<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"
    integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo"
    crossorigin="anonymous"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js"
    integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49"
    crossorigin="anonymous"></script>
  <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js"
    integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy"
    crossorigin="anonymous"></script>
    
  <script src="./js/search.js"></script>
</body>

</html>


Ответы (0 шт):