2
我想確定瀏覽器的實際高度與jQuery屏幕高度的關係。出於某種原因,讀數遠不準確,我想知道爲什麼。jQuery瀏覽器高度不準確
基本上我遇到的問題是,
- 的
window.innerHeight
和window.outerHeight
總是即使正在顯示的標籤欄完全相同的並且在2之間的顯着性(視覺)差.. - 上面的每個讀數都是總是小於
screen.height
和screen.availHeight
。我的印象是,這不應該是這種情況,如果瀏覽器是最大化VS全屏VS大小vs最小化?
我的要求是當元素到達瀏覽器視口的頂部時,更改window.scroll
事件上元素的類。不過,如果瀏覽器窗口的大小不是最大化或全屏,我還需要更改爲其他類。
下面是執行此操作的代碼,但是,就像我上面提到的那樣,「最大化」if語句從不是真的......爲什麼?
function SetFloatingDivCheck(ContainerName, StartingClassName, FixedClassNameSized, FixedClassNameMaximized) {
$(document).ready(function() {
var ElemY = $('#' + ContainerName).offset().top - parseFloat($('#' + ContainerName).css('margin-top').replace(/auto/, 0));
$(window).scroll(function() {
var YPosition = $(window).scrollTop();
if (YPosition >= ElemY) {
$('#' + ContainerName).removeClass(StartingClassName);
//the following alert/debug shows this: 1050, 949, 949, 1010 when fired.
//alert("screen.height = " + screen.height.toString() + "\nwindow.innerHeight = " + window.innerHeight.toString() + "\nwindow.outerHeight = " + window.innerHeight.toString() + "\n screen.availHeight = " + screen.availHeight.toString());
if (screen.height == window.outerHeight || screen.availHeight == window.outerHeight)
{
$('#' + ContainerName).addClass(FixedClassNameMaximized);
}
else
{
$('#' + ContainerName).addClass(FixedClassNameSized);
}
}
else {
$('#' + ContainerName).removeClass(FixedClassNameSized);
$('#' + ContainerName).removeClass(FixedClassNameMaximized);
$('#' + ContainerName).addClass(StartingClassName);
}
});
});
}
不知道你的意思在第二點,你是否期望最大化/全屏瀏覽器窗口比實際的屏幕尺寸更大......? – CBroe
_「我的要求是當window.scroll事件到達屏幕頂部時,改變一個元素的類。」 - 如果我的瀏覽器窗口_itself_甚至不觸及頂部屏幕邊框。 – CBroe
您正在使用哪種瀏覽器?我剛剛在Google Chrome控制檯中嘗試了'window.innerHeight'和'window.outerHeight',它們都不同。 –