3

ユーザーのマウスがウィンドウから離れたかどうかを検出する簡単なスクリプトを作成したいと考えています。ソリューションは、mouseout イベントを使用して既にここで説明されています。このソリューションの問題は、ユーザーがマウスでスクローラーに移動した場合にもアクションがトリガーされることです。e.pageY < jQuery(window).scrollTop()したがって、このコードにif 条件を追加しました。

addEvent(document, "mouseout", function(e) {
    e = e ? e : window.event;
    var from = e.relatedTarget || e.toElement;
    if ((!from || from.nodeName == "HTML") && e.pageY < jQuery(window).scrollTop()) {
        alert("left window");
    }
});

Microsoft Edge を除くすべてのブラウザーで問題なく動作します。Edge e.pageY では、他のブラウザーのように 0 または -1,-2... は必要ありませんが、50,34,... になります (マウスを動かす速度によって異なります)。

この問題に対する簡単な解決策があるかどうか疑問に思っています。

4

0 に答える 0