当元素变得可见时,Javascript跟踪?

时间:2013-09-08 17:44:03

标签: javascript html5 windows-8 modern-ui

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

2 个答案:

答案 0 :(得分:1)

试试这个

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);
}

答案 1 :(得分:0)

我能想到的唯一方法是使用setInterval方法检查element.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);