Как сделать динамический поиск и выпадающие варианты заголовков статьей?
Делаю проект на 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>