概要
WordPressで構築したサイトで最初に訪問した場合にCookieNotice(cookie利用同意チェック)と
同時に初回訪問用のオーバーレイプラグインを導入している。
サイトを初回訪問した際にCookieの同意と初回訪問オーバレイ(全画面)が表示され、オーバレイは閉じるボタンを押下すれば該当のページが表示される仕組み。
ただこのオーバレイのプラグインが演出からかローディング画面を出してからフェードインする仕様
しかし一方のCookie同意は最初からページに表示されており、ローディング前からCookieが出てしまっているのが気になるからどうにかならないか?と言う要望
利用プラグイン
・ Cookie Notice & Compliance for GDPR/CCPA
・ 初回訪問オーバレイプラグイン
考察
WordPressのイベント制御を全て制御できれば良いがそうもいかない。
Cookie側のプラグインでは「該当ページ」の場合に表示非表示を制御する事は出来るが
当然の事ながらプラグインの全てのロード後に表示と言う制御はない
担当への確認として、初回オーバレイはオーバレイで出て欲しい。
Cookie同意はそのあとに出てくれれば良いとの返事。
対応策
レイヤー1: 各画面
レイヤー2: 初回訪問オーバレイ
レイヤー3: cookie同意
と言う構造になっている。このレイヤーを変更すれば良い
前提条件
レイヤー2のオーバーレイの要素名は仮にoverlay とし
レイヤー3のCookie同意の要素名はcookie-notice とする。
改修
WordPressのCSS編集画面に
#overlay{
z-index: 100;
}
#cookie-notice {
z-index: 10;
}
を追加する。
overlayの方が値が大きいため、全画面表示された時に先にロードされているCookie同意の上からローディング画面が走る。
要件としてはクリアしているが、この辺はスクラッチでないため演出要素の制御に手を入れるとなると難しい。
とは言えプラグインだから無理と言う返答にならないようにする。