Как посчитать количество уведомлений на иконке?
![]()
Bootstrap предоставляет нам значки для отображения счетчиков на значке, которые можно использовать для отображения непрочитанных уведомлений / сообщений и т. Д. Нам нужно получить значение счетчика на значке значка и соответствующим образом обновить это значение. В этой статье мы создадим значок уведомления, который может содержать подсчет, как непрочитанное уведомление. Мы разделим это на два разных раздела: в первом разделе мы создадим структуру значка, а во втором разделе мы разработаем значок и сделаем значок адаптивным.
Подход: мы продолжим следующие шаги, чтобы гарантировать, что мы всегда можем получить номер уведомления / количество значков для значка независимо от структуры DOM.
- Помещение значка и значка под один и тот же элемент.
- Использование функции jQuery find () для извлечения счетчика.
- Увеличить / уменьшить количество значков из извлеченного значения.
- Обновите значение.
Создание структуры: Ниже приведен пример кода, который мы будем использовать в качестве шаблона. Наконец, мы применим jQuery в соответствии с постановкой задачи для следующего.
- Ссылки CDN для иконок из Font Awesome:
<script src=”https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.0/js/all.min.js”></script>
- HTML код:
<!-- Final Solution --><!DOCTYPE html><htmllang="en"><head><metacharset="utf-8"><metaname="viewport"content="width=device-width, initial-scale=1"><linkrel="stylesheet"href=<scriptsrc=</script><scriptsrc=</script><scriptsrc=</script><scriptsrc=</script></head><body><divclass="container-fluid"><br><br><center><h1>GeeksforGeeks</h1><h4>Icon with count Badge:<!-- Wrapping the icon and badge --><spanid="group"><buttontype="button"class="btn btn-info"><iclass="fa fa-envelope"></i></button><spanclass="badge badge-light">5</span></span></h4><br><br><buttonclass="btn btn-danger"><iclass="fas fa-minus"></i>Subtract</button><buttonclass="btn btn-success"><iclass="fas fa-plus"></i>Addition</button></center></div></body></html>
Разработка структуры: в этом разделе мы разработаем структуру и сделаем значок адаптивным.
- Код CSS:
<style>h1{color:green;}.badge {position:relative;top:-20px;left:-25px;border:solidblack1px;border-radius:50%;}button {margin:5px;}</style> - Код JavaScript: реализация подхода полностью зависит от разработчика, а структура DOM зависит от требуемого варианта использования. Не обязательно, чтобы разработчик группировал значок в том же элементе, что и значок.
<script>// Use find() function to extract the badge// count from '#group' container.$(document).ready(function() {$(".btn").click(function() {varval = parseInt($('#group').find('.badge').text());// Check for the button clickedif($(this).hasClass('btn-danger')) {$('#group').find('.badge').text(val - 1);}elseif($(this).hasClass('btn-success')) {$('#group').find('.badge').text(val + 1);}});});</script>
Примечание. Позже мы сгруппируем это, чтобы применить jQuery к значку, независимо от того, как разработчик реализовал его.
Объединение кода HTML, CSS и JavaScript: это последний код, который представляет собой комбинацию двух вышеуказанных разделов, создающих структуру и структуру проектирования.
<!-- Final Solution --><!DOCTYPE html>< html lang = "en" > < head > < meta charset = "utf-8" > < meta name = "viewport" content = "width=device-width, initial-scale=1" > < link rel = "stylesheet" href = < script src = </ script > < script src = </ script > < script src = </ script > < script src = </ script > < style > h1 { color:green; } .badge { position: relative; top: -20px; left: -25px; border: 1px solid black; border-radius: 50%; } button { margin:5px; } </ style ></ head > < body > < div class = "container-fluid" > < br > < br > < center > < h1 >GeeksforGeeks</ h1 > < h4 >Icon with count Badge: <!-- Wrapping the icon and badge --> < span id = "group" > < button type = "button" class = "btn btn-info" > < i class = "fa fa-envelope" ></ i > </ button > < span class = "badge badge-light" >5</ span > </ span > </ h4 > < br > < br > < button class = "btn btn-danger" > < i class = "fas fa-minus" ></ i > Subtract </ button > < button class = "btn btn-success" > < i class = "fas fa-plus" ></ i > Addition </ button > </ center > </ div ></ body >< script > // Use find() function to extract the badge // count from '#group' container. $(document).ready(function() { $(".btn").click(function() { var val = parseInt($('#group').find('.badge').text()); // Check for the button clicked if ($(this).hasClass('btn-danger')) { $('#group').find('.badge').text(val - 1); } else if ($(this).hasClass('btn-success')) { $('#group').find('.badge').text(val + 1); } }); });</ script > </ html > |
Выход :