ブログ

透過ヘッダーの上でコンテンツ内のリンクをクリック可能にする方法

固定した透過ヘッダーとコンテンツ内のリンクがスクロールで交差する際に、コンテンツ内のリンクをクリック可能にする方法について解説しています。

Xのタイムラインで流れてきて、とても良い実装だなと感じたので再現してみました。

実装例

下記が実装例です。スクロールしてヘッダーとボタンを重ねてみてください。
※ヘッダーの領域がわかりやすいように枠線をつけています。

ヘッダーの上でボタンのクリックが可能

下記の画像のように、透過したヘッダーの上でボタンのクリックが可能です。

透過ヘッダーとコンテンツのボタンの交差時
ヘッダーとボタンの交差時

コードの解説

この実装を可能にしているのは以下の2行だけです。

style.css
/* ヘッダーの上でコンテンツのリンクをクリック可能にするための記述 */
.header {
pointer-events: none;
}
.header a {
pointer-events: auto;
}

.headerpointer-events: none;を適用することでヘッダー全体のクリックを無効化しています。この状態ですでに交差時のボタンがクリックできるようになります。

ただこのままだとヘッダー内のリンク(ロゴやグローバルナビゲーションのメニュー)がクリックできないため、ヘッダー内のリンクである.header apointer-events: auto;を指定しています。

これでヘッダーとボタンの交差時に、双方のリンクがクリック可能となります。

まとめ

テキストの視認性を上げるためヘッダーはスクロール時に背景色をつけることが多いですが、透過のまま固定する際にはこちらの方法を実践しようと思います。

CTAボタンなどはどのタイミングでクリックされるかわからないため、できるだけクリック可能な領域は広げておきたいですね。