id = "background1"のdivのサイズをリセットするためにbodyのscrollHeightを取得しようとしています。私の外部のCSSで私はそのidをpositionに設定する:absolute scrollHeightは常に0を返す。私がposition:relative scrollHeightに設定すると、正しい値が返される。もちろん、他のセレクタが配置されているcssにはセレクタが数多くあります。絶対的なものとして残しておくと、上記の動作は変わりません。コード:scrollHeightがposition:absoluteで動作しない
<script type="text/javascript">
function getElement(elem) {
var art;
if (document.all) { // this is the way old msie versions work
art = document.all[elem];
}
else if (document.layers) { // this is the way nn4 works
art = document.layers[elem];
}
else if (document.getElementById) { // this is the way the standards work
art = document.getElementById(elem);
}
return art;
}
function toggleArticleDisplay(elem) {
var artArray = document.getElementsByTagName("article");
for(var i = 0; i < artArray.length; i++) {
artArray[i].style.display = "none";
}
var art = getElement(elem);
art.style.display = "block";
var bg1 = document.getElementById("background1");
bg1.style.height = "550px";
var b = document.getElementById("potoococha");
alert(b.scrollHeight);
bg1.style.height = (b.scrollHeight >= window.innerHeight) ?
(b.scrollHeight+20) + "px" : window.innerHeight + "px";
}
</script>
</head>
<body id="potoococha" onLoad="toggleArticleDisplay('homeText')">
<div id="background1" style="height:615px;"/>
そして今、CSS:
div#background1 { position : absolute;
left : 45px;
top : 0px;
z-index : 1;
width : 50px;
background-color : rgba(182,181,91,1.0); }
単に、相対的にその位置を変更するにはjavascript関数のアラートが適切scrollHeightを返しますが、私は他の理由のために、これは絶対必要です。一部の要素が絶対配置されているとscrollHeightは機能しませんか?私が言ったように、scrollHeightの戻り値に影響を与えない別の後に絶対配置された要素があります。 body要素の最初の子要素であるこの要素だけが問題に思えます。何か案は?