Javascript跟踪元素何时可见?

Javascript跟踪元素何时可见?,javascript,html,windows-8,modern-ui,Javascript,Html,Windows 8,Modern Ui,我在屏幕上有不同的控件,并异步隐藏和显示它们。有没有办法跟踪元素在屏幕上实际可见的时间?实际上,我希望在发生这种情况时得到回调,并将焦点移到该元素上 试试这个 var trk = new Array("element1","element2","element3"); // add elements IDS whom you want to track window.onload = function(){ track(); } function track() { var ele;

我在屏幕上有不同的控件,并异步隐藏和显示它们。有没有办法跟踪元素在屏幕上实际可见的时间?实际上,我希望在发生这种情况时得到回调,并将焦点移到该元素上

试试这个

var trk = new Array("element1","element2","element3"); // add elements IDS whom you want to track
window.onload = function(){

  track();
}

function track()
{
  var ele;
 for(var i=0;i<trk.length;i++)
 {  
    ele= document.getElementById(trk[i]);
    if(ele)
    {
       if(ele.style.display!="none")
       {
          // do something
       }
    }
 }
 setTimeout(function(){track();},1);
}
var trk=新数组(“element1”、“element2”、“element3”);//添加要跟踪的元素ID
window.onload=函数(){
轨道();
}
函数跟踪()
{
var-ele;

对于(var i=0;i来说,我能想到的唯一方法是使用setInterval方法来检查元素.style.display!==“none”,或者使用任何其他方法来隐藏和显示元素

比如:

var myInterval = setInterval(function()
{
    var element = document.getElementByID("SomeElement");
    if( element.style.display!=="none" || element.style.visibility!=="hidden")
    {
        //exit the interval
        clearInterval(myInterval);
        doSomeFunction();
    }
}, 20);

这似乎很好,但我希望在不发生超时事件的情况下更改某些内容