visibilitychangeイベントとvisibilityStateプロパティを使って判定できる。
// タブが見えているかどうかの判定
document.addEventListener("visibilitychange", () =>{
if(document.visibilityState === "hidden"){
// 非表示時
console.log("かくれた");
}
else{
// 表示時
console.log("みえた");
}
}, false);
コンソールに表示しているので、タブを複数開いた状態で、タブを切り替えながら確認してほしい。ただし、タブがかくれているときはコンソールが見えない(笑)ので、「かくれた」→「みえた」の順で表示されていることが確認できればOK。
ソースコード例
index.html
5 | < meta name = "viewport" content = "width=device-width, initial-scale=1.0" > |
6 | < title >タブが見えているかどうかの判定</ title > |
7 | < script src = "main.js" type = "text/javascript" ></ script > |
main.js
4 | window.addEventListener( "load" , ()=>{ |
7 | document.addEventListener( "visibilitychange" , () =>{ |
8 | if (document.visibilityState === "hidden" ){ |
コメント