JavaScript(脱jQuery)
クッキー同意するボタン
ボタン
Cookieの設定時間
・同意ボタン ⇒ 365日
・閉じるボタン ⇒ 1日
HTML
javascript
// cookie バナー
document.addEventListener("DOMContentLoaded", function() {
// ID取得
const banner = document.getElementById("cookie-banner");
const closeBtn = document.getElementById("cookie-banner__close");
const acceptBtn = document.getElementById("cookie-banner__accept");
// ID取得できているか確認
console.log("banner:", banner);
console.log("closeBtn:", closeBtn);
console.log("acceptBtn:", acceptBtn);
// 要素が存在しない場合は処理を中断
if (!banner || !closeBtn || !acceptBtn) {
console.error("必要な要素が見つかりませんでした");
return;
}
// Cookie設定
function setCookie(name, value, days) {
const date = new Date();
date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
//document.cookie = name + "=" + value + "; expires=" + date.toUTCString() + "; path=/";
document.cookie = `${name}=${value}; expires=${date.toUTCString()}; path=/`;
}
// Cookie取得
function getCookie(name) {
const cookies = document.cookie.split("; ");
for (let i = 0; i < cookies.length; i++) {
let c = cookies[i].split("=");
if (c[0] === name) return c[1];
}
return null;
}
// Cookie保存(有効期限365日)
acceptBtn.addEventListener("click", function() {
setCookie("keep_year", "true", 365);
banner.style.bottom = "-100%";
});
// 閉じるボタンは 1 日だけ非表示
closeBtn.addEventListener("click", function() {
setCookie("keep_one", "true", 1);
banner.style.bottom = "-100%";
});
// Cookie未同意ならバナー表示
if (!getCookie("keep_year") && !getCookie("keep_one")) {
banner.style.bottom = "0";
}
});