リクエスト広場

コメントにマウスオーバーをしても、右上のリアクション/ミュートボタンが表示されない / 8

14 コメント
views
6 フォロー
8
名前なし 2023/04/10 (月) 21:10:05 修正 abccb@b36cd

zawazawa運営様
おそらく原因がわかったため記載します。
jquery.comment-action-menu.js

    const hoverEvent = [];
    const isTouchDevice = navigator.maxTouchPoints > 0 || navigator.msMaxTouchPoints > 0;
    if (isTouchDevice) {
        // A タッチできるならタッチをトリガーに
        hoverEvent.push('touchstart.' + EVENT_NAMESPACE);
    }
    if (navigator.pointerEnabled || !isTouchDevice) {
        // B タッチできるかどうかに関係なくマウスポインタがあるなら
        // (& このプロパティがないブラウザを想定して、タッチなしなら常に) ホバーで
        hoverEvent.push('mouseenter.' + EVENT_NAMESPACE);
    }

この部分、現象が発生しているPCでは navigator.maxTouchPoints が 2 になっており、
isTouchDevice が true となり、タッチパネルを備えたデバイスと判定されています。
その理由としては、ペンタブレットのドライバーをこのPCにインストールして使用しているためと思われます。
(XPPen製Wacom製のドライバをインストール済み。Macでは影響がない一方で、Windows環境では、ドライバをインストールすると、タッチパネル搭載として扱われてログイン画面でソフトウェアキーボードが出たりなどの変化があります。ドライバをインストールしたら、ペンタブレット実機がなくても、再現できるかもしれません)
一方で、navigator.pointerEnabled は undefined です。

したがって、mouseenter のイベント追加が行われず、ボタンが表示されないということになります。
(navigator.pointerEnabled || !isTouchDevice) という条件の見直しが必要かと思われます。
ここまでわかりましたから、修正をお願いします。

逆に、こちらのPC環境に対して補足要求がありましたらお願い致します。

通報 ...
  • 9
    zawazawa運営 2023/04/10 (月) 21:18:30 >> 8

    情報提供ありがとうございます。
    確認いたします。

    10
    名前なし 2023/04/10 (月) 21:22:04 修正 abccb@b36cd >> 9

    何卒よろしくお願いいたします。
    実際に試していませんが、SurfaceのようなタッチパネルつきのWindowsPCでもアウトになりそうです

    11
    zawazawa運営 2023/04/12 (水) 12:03:45 >> 9

    新しいロジックを検討しております。
    恐れ入りますが、今しばらくお待ちください。

    12
    zawazawa運営 2023/04/14 (金) 17:10:10 >> 9

    調整しました。
    ご確認いただけたら幸いです。

    13
    名前なし 2023/04/14 (金) 20:41:54 abccb@b36cd >> 9

    ありがとうございます!
    今までリアクションボタンが表示されなかった環境で試してみたところ、
    いずれでも表示されて機能が利用可能となりました。
    原因特定からの迅速なご対応、大変助かります。ありがとうございました。
    引き続き利用させていただきますので、よろしくお願いいたします。

    14
    zawazawa運営 2023/04/14 (金) 22:01:48 >> 9

    ご確認ありがとうございます。
    今後ともよろしくお願いいたします。

要望は具体的な提案や理由を書いて下さい。
×