2023/12/05

サイトからjQueryを外す作業を行いました。

これまで以下の用途においてjQueryを使用しておりましたが、

1. 検索ボックスの開閉(スマホのみ)
2. スクロールしたときに右下にボタンを表示
3. 右下のボタンをクリックしたときにページ上部にスムーススクロール
4. サイドバーの追尾広告(PCのみ)

これを以下のように変更しました。

1. スクリプトの書き換え
2. スクリプトの書き換え(Intersection Observer APIを使用)
3. スクリプトの書き換え(behavior: 'smooth' を使用)
4. CSSの position: sticky を使用

4の position: sticky の使用に伴い、ページの横並びカラムで使用していた float を display: flex に変更(サイドバーの高さを下まで伸ばす必要があるため)。

ところが、「display: flex + AdSenseのレスポンシブ指定 + Chrome」の組み合わせでは不具合(メインカラム内のAdSenseの幅がブラウザの幅いっぱいに広がってしまう)が生じてしまい、float に戻すはめに。

仕方がないので、サイドバーの高さをスクリプトで伸ばして position: sticky が機能するようにしました(結局スクリプトを使うことになってしまった)。


最近になって position: sticky を使う機会が何度かあったのですが、これは便利な機能ですね~。縦に長い表の thead で使うと格段に見やすくなります。