setInterval如何阻止它加载不同的css才能工作

时间:2011-06-04 17:28:56

标签: javascript

你如何停止我的代码间隔:

function timeres(){

if((screen.width!= 1280)&&(screen.height!= 1024)) {  文件撰写 }

}

的setInterval( 'timeres()',1);

当我更改分辨率时,代码工作得很好而没有setinterval我必须刷新页面以使css生效但是我希望它在用户改变他/她的分辨率后自动更改所以我想也许setinterval可以工作< / p>

轻松编写一个菜鸟:D

3 个答案:

答案 0 :(得分:0)

setInterval的调用会返回对您请求的超时的引用。您可以使用clearTimeout取消此内容。

function timeres() {
    if ((screen.width!=1280) && (screen.height!=1024)) {    
        document.write("<link rel='stylesheet' type='text/css'href='css/style1024.css'  />"); 
    }  
}

var timeoutReference = setInterval('timeres()',1);

clearInterval(timeoutReference);

答案 1 :(得分:0)

我认为对您有所帮助的是熟悉事件,尤其是onresize。所以你不需要在循环中进行延时检查。

window.onresize = function() {
    if ((screen.width!=1280) && (screen.height!=1024)) {    
        document.write("<link rel='stylesheet' type='text/css'href='css/style1024.css'  />");
    }      
};

答案 2 :(得分:0)

@Jon Cram几乎拥有它,但引用了错误的明确方法。在将setInterval的结果存储到引用之后,clearInterval就是您想要的。 e.g。

// declare the interval, and make it a variable for reference
var theInterval = setInterval(foo,1000);

// then to clear it, clear that reference
clearInterval(theInterval);

此外,虽然我知道它有点混乱/不一致,但您可能希望查看基于屏幕大小的规则的@media CSS扩展。

@media (max-width: 1024px) {
  div {
    width: 700px;
  }
}