我想在浏览器窗口小于/大于960px的宽度时触发一个函数。 我写了一些看起来像这样的代码:
$(window).on('resize', function() {
if ($(window).width() < 960) {
dosomething();
} else {
dosomething();
}
});
当重新调整窗口宽度函数的大小时,但是它会保持每个像素的重复功能都会发生变化,并且它会提出很多我想要避免的请求。当它超过960px时,有没有任何方法只激活一次功能?(同样,如果屏幕变为960以上并再次降低,则仅再次激活一次功能)
如果您知道答案,请感谢互联网用户!!!
我通过在更改窗口大小时设置超时来找到解决方案:
$(document).ready(function(){
function resizeStuff() {
if ($(window).width() < 960)
{
loadCurrentPage();
}
else {
loadCurrentPage();
}
}
var TO = false;
$(window).resize(function(){
if(TO !== false)
clearTimeout(TO);
TO = setTimeout(resizeStuff, 200); //200 is time in miliseconds
});
案件结案。再次,Google中正确的搜索词给出了答案
答案 0 :(得分:0)
我认为你应该把这个状态保存在一个变量中并用它扩展你的if。
答案 1 :(得分:0)
我会做这样的事情
$(window).on('resize', function() {
var nextTrigger = 'below';
if ($(window).width() < 960 && nextTrigger == 'below') {
nextTrigger = 'above';
dosomething();
} else if(nextTrigger == 'above') {
nextTrigger = 'below';
dosomething();
}
});