当サイトは、アフィリエイト・アドセンス広告を掲載しています。消費者庁が、2023年10月1日から施行予定である景品表示法の規制対象(通称:ステマ規制)にならないよう、配慮して記事を作成しています(記事はこちら、消す方法はこちら

参考:令和5年10月1日からステルスマーケティングは景品表示法違反となります。 | 消費者庁

【Twitter】開いているDM以外を非表示にして、ホバーで表示するCSS

Twitter

「Twitter」のアイコン

この記事では、PCウェブサイト版「Twitter」のダイレクトメッセージ(DM)で、開いているDM以外は、見えないよう隠して、ホバー時だけ表示させるCSSを書きます。

ウェブサイトに自分で作成したCSSを適用できるChrome拡張機能「Stylebot(スタイルボット)」や「Stylus(スタイラス)」を利用します。

【Twitter】開いているDM以外を非表示にして、ホバーで表示するCSS

PCでTwitterを利用している時、ちょくちょくダイレクトメッセージ(DM)ページをスクリーンショット撮影したい時があります。この時、範囲選択でキャプチャーするのですが、不要なDMのリストがうつってしまう時があります。

PCウェブサイト版「Twitter」のDM画像

範囲選択でキャプチャーするので、リストがうつらないよう開いているDMの中身だけキャプチャーすればいいだけですし、仮にうつってしまっても、画像編集ソフトで切り取ったり、ぼかしをかければいいだけなんですが、やはり、そこまで手間をかけるのがめんどくさいです。

「うっかりキャプチャー範囲に入ってしまわないよう、開いているDM以外の一覧は、非表示にしたいな」と思ったので、CSS作成ついでで記事にします。自身の環境上で、他人には影響しません。いつでも元に戻せます。

本記事は、Chrome拡張機能・Firefoxアドオンを利用できるPCブラウザ限定です。スマホのアプリ版ではできません。

インストール方法

Chromeウェブストアからインストールできます。Chrome拡張機能だけでなく、「Microsoft Edge」と「Firefox」版もあります。

「Chromeに追加」をクリックしてインストールします。

「Stylebot」のインストール手順画像

右上に拡張機能ボタンが追加されればOKです。詳しく使い方を知りたい方は、以下の記事を参考にしてみてください。

開いていないDMは、ホバー時以外非表示にするCSS

Twitter」にアクセスします。インストールした「Stylebot」拡張機能アイコンをクリック→「Stylebotを開く」をクリックします。

Stylebotのスクリーンショット1

分かる方は、Twitter内の他ページで誤動作を防ぐために、ドメイン単位ではなく、ページ単位のスタイルシートに書き込むのがいいかなと思います。DMページだと、「**//twitter.com/messages**」です。

右側に白紙のサイドバーが表示されます。もし初めて「Stylebot」を起動した場合は、「ベーシック」という画面が表示されます。下部にある「コード」をクリックすると、白紙のスタイルシート画面を開けます。以下のコードを書き込みます。

/*【DM】開いているメッセージ以外非表示。ホバー時に表示*/
div[aria-label="タイムライン: メッセージ"]:not(:hover) [data-testid="cellInnerDiv"]:has(div[aria-selected="false"]) {
    opacity: 0 !important;
    transition-delay: .7s !important;
}

:not(:hover)」がマウスホバーしていない時(マウスが範囲外の時)という意味で、「opacity: 0」が透明にするという意味です。

transition-delay」は、マウスをDMのリスト外にもっていったときから、非表示にするまでの遅延時間です。上記のサンプルCSSでは、マウスをリストの外にもっていってから、0.7秒後に透明化を開始するようにしています。待機なしで非表示にしたい場合は、「transition-delay」を書かないようにするか、「0」に数字部分を書き換えます。

注意事項

本記事のCSSは、僕が適当に作成したコードです。皆さんの環境によっては使えなかったり、サイト側の仕様変更でいつの間にか使えなくなる可能性もあります。

もし書き込んでも反映されない場合、問い合わせより教えていただければ幸いです。初心者の僕ができる範囲で、修正したいと思います。

下記画像のようになればOKです。右上の「×」でスタイルシートを閉じます。

Stylebotのスクリーンショット2

再度拡張機能ボタンを押して、登録したサイト(例:twitter.com)がオンになっていることを確認します。オンになっている間は有効になっているということです。

これで現在開いているDM以外のリストが、マウスをリストの範囲外に置いている場合、非表示になります。

PCウェブサイト版「Twitter」で、CSSを使って、開いているDM以外、非表示に隠した画像

マウスをリストの範囲内にもっていくと、ゆっくり隠れたDMリストが表示されます。GIF画像を貼っておきます。

PCウェブサイト版「Twitter」でマウスホバーで開いていないDMを表示したGIF画像

一時的に無効化したい場合は、「Stylebot」拡張機能アイコンを左クリック→「twitter.com」をオフにします。完全に使わなくなった場合は、書き込んだコードを削除します。

新着メッセージがある場合は表示させたい場合

上記のCSSは、新着メッセージがある場合でも、アクティブDMでなければ、非表示にします。そうではなく、アクティブDMと新着メッセージがあるDMは、表示させたい場合、上記CSSではなく、以下のCSSを利用します。

/*【DM】開いているメッセージと新規メッセージ以外非表示。ホバー時に表示*/
div[aria-label="タイムライン: メッセージ"]:not(:hover) [data-testid="cellInnerDiv"]:has(div[aria-selected="false"]):not(:has(:is(.r-1ow6zhx, .r-ltgprq, .r-1ozfoo7, .r-1uvorsx, .r-j240cv))) {
    opacity: 0 !important;
    transition-delay: .7s !important;
}

マウスをDMのリスト外にもっていくと、開いているDMと新着メッセージがあるDM以外が非表示になります。

PCウェブサイト版「Twitter」で、開いているDMと新着メッセージがあるDMをCSSで表示した画像

感想

以上、PCウェブサイト版「Twitter」のダイレクトメッセージ(DM)で、開いているDM以外は、見えないよう隠して、ホバー時だけ表示させるCSSについてでした。

Twitter