Javascript 滚动时如何停止window.onresize事件?我只需要开火一次?
我一路尝试,但window.onresize在向上或向下滑动页面时仍会启动 首先,我尝试一个基本命令行:Javascript 滚动时如何停止window.onresize事件?我只需要开火一次?,javascript,html,Javascript,Html,我一路尝试,但window.onresize在向上或向下滑动页面时仍会启动 首先,我尝试一个基本命令行: window.onresize = function (event) { setTimeout(Orientation,500); } function Orientation() { if (window.innerHeight > window.innerWidth) { alert("Portrait"); } else { alert("Landscap
window.onresize = function (event) {
setTimeout(Orientation,500);
}
function Orientation() {
if (window.innerHeight > window.innerWidth) {
alert("Portrait");
}
else {
alert("Landscape");
}
}
当警报显示时,我单击“确定”。但当我在页面上上上下滑动时,警报再次出现,总是这样
我将尝试jquery的David Walsh:
function debounce(func, wait, immediate) {
var timeout;
return function() {
var context = this, args = arguments;
var later = function() {
timeout = null;
if (!immediate) func.apply(context, args);
};
var callNow = immediate && !timeout;
clearTimeout(timeout);
timeout = setTimeout(later, wait);
if (callNow) func.apply(context, args);
};
};
var myEfficientFn = debounce(function() {
if (window.innerHeight > window.innerWidth) {
alert("Portrait");
}
else {
alert("Landscape");
}
}, 250);
window.addEventListener('resize', myEfficientFn);
结果是一样的
您可以通过手机或平板电脑在此尝试:
这个活动还有其他方式吗?非常感谢 在函数中添加一个条件,使函数仅在需要时启动
window.onresize=doSomething;
变量计数=0
功能剂量测定法(x){
如果(count在这种情况下,我找不到使用事件调整大小的方法,但我找到了另一种解决方案:
var orien = '';
setInterval(function() {
if (window.innerHeight >= window.innerWidth && orien != 'Portrait') {
alert('Portrait');
orien = 'Portrait';
return;
}
if (window.innerHeight < window.innerWidth && orien != 'Landscape') {
alert('Landscape');
orien = 'Landscape';
}
}, 500);
var-orien='';
setInterval(函数(){
如果(window.innerHeight>=window.innerWidth&&orien!=“纵向”){
警惕(“肖像”);
orien=‘肖像’;
返回;
}
if(window.innerHeight
哇,太棒了,完成了!!!谢谢你漂亮的帮助!但是Window.resize事件现在停止,我希望它在Window.resize时运行一次?我想你没有意识到我的意思。停止你的函数启动,而不是事件。去掉超时并将其放入你的函数中。不要使用“if else”设置两个单独的条件。并非所有内容都是“if else”对window.resize事件没有影响?抱歉,这是我的错误,在这种情况下,我找不到使用事件调整大小的方法,但我找到了另一种解决方案。我在答案中添加了代码。请查看