カーソルがブラウザの外に出たら、アラートを出すとき
$(window).mouseleave(function(){
alert("ウインドウを出ました");
});
この場合、windows IE、Chrome だと
マウスをスクロールバーに乗せた時でもアラートがでてしまいます。
スクロールバー上にマウスがあるときは、
アラートを表示させないためにはどうすれば良いでしょうか?
windows のfirefox
mac の firefox、Chrome、safari ではスクロールバーに乗せてもアラートがでません。
ブラウザの種類に関係なく、ブラウザの外に出たらアラートを出したいのです。
よろしくお願いします!
No.1ベストアンサー
- 回答日時:
こんにちは。
jQueryの問題というよりもブラウザ側の差異のようですね。
通常の要素にスクロールバーを表示する際は、スクロールバーも要素の一部として扱われるようですが、windowの場合だけ特別扱いにしているブラウザがあるようです。
この場合、スクロールバーはdocument外とされてしまうのでスクリプトの及ぶ範囲外となってしまいます。
ご質問の機能を実現する方法として、少々無理やりではありますが、body直下にラッパーのdiv等を置いて、windowにスクロールバーを出させずにこちらの要素でスクロールバーを表示させるようにすれば、ご提示の方法で判定が可能になると推測します。
ただし、ラッパーのサイズが常にwindowと同サイズになるように調整してあげる必要がでてきてしまいますが。
各種のブラウザで確認してはいませんし、自分でもあまりスマートな案だと思えませんので、あくまでもご参考までに・・・
body直下に<div id="wrapper">があるものと仮定して、
$(function(){
var w = $(window), wrap = $("#wrapper");
var resize = function(){
wrap.css({"width": w.width(), "height": w.height(), "overflow":"auto" });
}
$("html").css("overflow", "hidden");
w.on("resize", resize);
resize();
wrap.on("mouseleave", function(){
alert("ウインドウを出ました");
});
});
※あらかじめ、html, body{ margin:0; padding:0; width:100%; height:100%; } などとしておくとよろしいかと。
fujillin さん
ご回答ありがとうございます。
やはりスクロールバーも要素の一部であるか、ないかは直接、解決はできなのですね。
スッキリしました。
仰って頂きました方法を参考にして、やってみます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Chrome(クローム) 最近Win10にてブラウザが左にスッと隠れていく現象に悩まされてます 3 2023/07/22 23:11
- JavaScript javascriptで入力フォームが空欄の時にアラートによるエラーを出すコードを書いています。 2 2023/06/13 17:58
- その他(OS) Windows以外のOSでhttps://login.live.com/にアクセス出来無い 3 2022/04/06 12:57
- その他(プログラミング・Web制作) マウスオーバー→ホイール回転でスクロールできない 2 2022/10/31 10:06
- その他(OS) Mac OSの操作について 2 2022/06/08 09:19
- JavaScript 空白で入力フォームのボタンをクリックしたら、ブラウザの上部からjavascriptで 表示されるアラ 1 2022/05/20 11:16
- Chrome(クローム) 異なるブラウザのオートフィルコピー 1 2023/08/18 03:46
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- その他(ブラウザ) テキストを入れるときの縦線の点滅がそれ以外のブラウザ上にも表れます。 1 2022/07/29 21:55
- その他(ブラウザ) angel ブラウザってなぜアプリのクラッシュやフリーズが多いのでしょうか?? 特定のサイトにこのブ 3 2023/02/06 20:17
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・2024年に成し遂げたこと
- ・3分あったら何をしますか?
- ・何歳が一番楽しかった?
- ・治せない「クセ」を教えてください
- ・【大喜利】看板の文字を埋めてください
- ・【大喜利】【投稿~12/17】 ありそうだけど絶対に無いことわざ
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・【穴埋めお題】恐竜の新説
- ・我がまちの「給食」自慢を聞かせてっ!
- ・冬の健康法を教えて!
- ・一番好きな「クリスマスソング」は?
- ・集合写真、どこに映る?
- ・自分の通っていた小学校のあるある
- ・フォントについて教えてください!
- ・これが怖いの自分だけ?というものありますか?
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・10代と話して驚いたこと
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SQLのWHEREで全てを質問する方法
-
window.openで404エラーがでます
-
新しいウィンドゥを最大化で立...
-
javascriptでのポップアップウ...
-
プルダウンから別ウィンドウを...
-
window.openでフルスクリーン表...
-
モニターサイズによるページ振...
-
小窓を表示する時に、必ず右上...
-
<a href="#" …>の意味を教えて...
-
javascriptとApacheの設定
-
HTMLソースからURLだけを抜き出...
-
スマホ上で、左右スワイプで次...
-
【SSI】include file、include ...
-
showModalDialogで開いた画面か...
-
JavaScript内の関数を別のファ...
-
getElementsByNameで要素が取得...
-
ポップアップウィンドウの位置
-
cssにjavascriptを入れる?呼び...
-
ウインドウを縮小しても文字を...
-
javascriptファイルは1つに統...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SQLのWHEREで全てを質問する方法
-
新しいウィンドゥを最大化で立...
-
window.openでフルスクリーン表...
-
window.openで404エラーがでます
-
小窓を表示する時に、必ず右上...
-
JAVAでリンクボタンを作成して...
-
ホームページで window.open() ...
-
エクセルファイルをIE のウィン...
-
iframeのheight可変方法につい...
-
htmlでHP作成・1つのペー...
-
javascript サーバーファイル有...
-
location.hrefを使ったインライ...
-
親htmlから小画面を表示させる方法
-
外部からのjs呼び出しについて。
-
ウィンドウを閉じる際のダイアログ
-
jquery の mouseleave について...
-
Canvasを使って描画して面積取得
-
htmlファイルを開いた時の画面...
-
町内会での不倫
-
リンクをクリックしてタイトル...
おすすめ情報