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";
	}
});