我编写了这段代码并在Safari
浏览器中正常工作....
但在Internet Explorer
中它适用于宽度...
但是如果只有高度从顶端朝向下方向调整大小,它就无法工作......
我注意到,当调整大小时,窗口会粘在任务栏上(参见附图),这样可以在限制下调整窗口大小...
对此有任何解决方法?? ...
非常感谢帮助......
var MinimumWindowHeight = 600;
var MinimumWindowWidth = 1024;
var resizeTimeout;
$(window).resize(function () {
clearInterval(resizeTimeout);
resizeTimeout = setTimeout(function () {
try {
if ($(window).height() < MinimumWindowHeight || $(window).width() < MinimumWindowWidth)
window.resizeTo(MinimumWindowWidth, MinimumWindowHeight + 168);
} catch (e) { }
}, 50);
});
答案 0 :(得分:1)
尝试将高度和宽度属性分开:
clearInterval(resizeTimeout);
resizeTimeout = setTimeout(function () {
try {
if ($(window).height() < MinimumWindowHeight) {
window.resizeTo($(window).width(), MinimumWindowHeight + 168);
}
if ($(window).width() < MinimumWindowWidth) {
window.resizeTo(MinimumWindowWidth, $(window).height());
}
} catch (e) { }
}, 50);
});
编辑1:
记录实际发生的事情:
clearInterval(resizeTimeout);
resizeTimeout = setTimeout(function () {
try {
if ($(window).height() < MinimumWindowHeight) {
console.log("last height: " + $(window).height());
console.log("new height: " + MinimumWindowHeight + "+ 168");
window.resizeTo($(window).width(), MinimumWindowHeight + 168);
}
if ($(window).width() < MinimumWindowWidth) {
console.log("last width: " + $(window).width());
console.log("new width: " + MinimumWindowWidth);
window.resizeTo(MinimumWindowWidth, $(window).height());
}
} catch (e) {
console.log("an error occured !");
}
}, 50);
});
编辑2:
我看到有关任务栏问题的帖子:https://stackoverflow.com/a/60209/4786273
看起来你不能,你必须在调整大小之前移动窗口以避免这种情况...你可以计算位置而不是(0,0)位置。
为此,您可以阅读https://stackoverflow.com/a/3437825/4786273和screen.height - (MinimumWindowHeight + 168)
作为窗口的顶部位置。