当屏幕的某个部分发生变化时,触发jquery / javascript?

时间:2012-09-29 21:29:32

标签: javascript jquery

我想检测网页的某个特定部分何时发生更改,并在发生时刷新页面。这可能吗?例如,假设在页面的左上角有一个绿色的,绝对定位的元素,大约50px乘50px - 我希望页面在它变成红色时刷新。

基本上我正在尝试构建的是一个网站的叠加层,它将检测何时弹出通知并自动刷新页面。如果有其他方法比我想出的方法更好,请对任何事情持开放态度。

2 个答案:

答案 0 :(得分:0)

您可以使用:

$(element).on('DOMAttrModified', function() {
    //code
});

不确定这是否属于标准。

答案 1 :(得分:0)

您可以使用它来检查每一秒:

function hasChanged(hasItChanged)
{
 //your code, eg

 if(hasItChanged) alert("yep");
 else alert("nope");

}

function check(){
  if($("element").css("background-color") == "rgb(255, 0, 0)")
    hasChanged(true);

  else
    hasChanged(false);
}

setInterval(check, 1000); //check every second (1000 miliseconds)

只需将if($("element").css("background-color") == "rgb(255, 0, 0)")行更改为您发现更改的某些CSS(显然会将$("element")更改为您想要的选择器。)

编辑:我发现你必须使用RGB才能工作,就颜色而言。但是您始终可以在浏览器的控制台中键入$("element").css("background-color")并查看它为您提供的内容。也许你需要一个或者声明来支持跨浏览器,尽管我认为至少在现代浏览器中这是不必要的。