Skip to content

Instantly share code, notes, and snippets.

@taotiwordpress
Created July 8, 2022 16:14
Show Gist options
  • Save taotiwordpress/5b357d42628de7756d8c1697b5e382b0 to your computer and use it in GitHub Desktop.
Save taotiwordpress/5b357d42628de7756d8c1697b5e382b0 to your computer and use it in GitHub Desktop.
Alert / Announcement Banner #alert #announcement #javascript #localStorage
(function ($) {
"use strict";
/**
* LocalStorage based Alert Bar
*
* This 'Alert Bar' will track (localStorage) whether user has
* manually clicked 'close' on a CURRENT banner.
*
* If the 'bannerText' changes, then the next time the user visits the site,
* they will see the NEW banner.
*
* Note: Technically is pure JavaScript, not jQuery.
*/
let AlertBanner = document.getElementById("alert-banner");
if( AlertBanner ) { announcementBar(); }
function announcementBar() {
let closeBanner = document.getElementById("alert-banner__close-btn");
let bannerText = document.getElementById("alert-banner__text").textContent;
if (localStorage.getItem("ut-banner-data") != bannerText) {
// If different, reset hide bar value for local storage.
localStorage.setItem("ut-banner", "false");
}
if(localStorage.getItem("ut-banner") == "true") {
// If false, remove the bar container.
AlertBanner.remove();
} else {
// If true, remove hide class.
AlertBanner.classList.remove("d-none");
}
closeBanner.addEventListener("click", function() {
AlertBanner.remove();
localStorage.setItem("ut-banner-data", bannerText);
localStorage.setItem("ut-banner", "true");
});
}
})(jQuery);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment