基本Js功能可以缩放两个DIV的高度
我想要#result
被缩放到#sidebar
如果设置了高度。如果不是,则将#result
保留在原始高度。基本Js功能可以缩放两个DIV的高度
我的代码:
window.onload = setDiv; function setDiv() {
var e = document.getElementById('sidebar'); // Get the sidebar infos
var eh = e.offsetHeight // div height
if (typeof(eh) == "undefined" || typeof(eh) == null) { // if sidebar isnt in the page
alert(eh);
return true;
} else {
var eh = e.offsetHeight // div height
var d = document.getElementById('result') // Get the result div height
var dh = d.offsetHeight // div height
d.style.height = eh + 65 + 'px'; // Set result div height to sidebar height
alert(d);
document.write(dh);
return false;
}
}
我不认为需要HTML/CSS。
谢谢。
回答:
这将导致一个错误,因为e
不存在(还):
var e = document.getElementById('sidebar'); // <<< This is what doesn't work
这是因为你window.onload
不这样做的权利。以括号关:
window.onload = setDiv;
http://jsfiddle.net/userdude/u8DZx/3/
我想证明这是多么容易在像jQuery库做。 window.onload
并不总是按照你所想的方式工作;在jQuery中使用onDomReady
或$(document).ready()
通常会更好。您也可以在页面加载的不同点上添加多个处理程序,使用window.onload
方法更加困难。
$(document).ready(function(){ setTimeout(function(){setDiv();},2000); // So you can see the transition
});
function setDiv() {
var $sidebar = $('#sidebar');
if ($sidebar.size() === 0) {
return true;
} else {
$('#result').animate({
height : $('#sidebar').height()
}, 5000);
return false;
}
}
http://jsfiddle.net/userdude/u8DZx/1/
如果你不想要的效果,只是做:
$('#result').height($('#sidebar').height());
如果你实际上意味着使用offsetHeight
,它听起来不像这就是你想要(height
),你可以这样做:
$(document).ready(function(){ setTimeout(function(){setDiv();},2000); // So you can see the transition
});
function setDiv() {
var $sidebar = $('#sidebar');
if ($sidebar.size() === 0) {
return true;
} else {
$('#result').offset($('#sidebar').offset());
return false;
}
}
http://jsfiddle.net/userdude/u8DZx/2/
回答:
此行似乎是错误的:
if (typeof(eh) == "undefined" || "null") { // if sidebar isnt in the page
试试这个:
if (typeof(eh) == "undefined" || typeof(eh) == null) { // if sidebar isnt in the page
另外,我想补充一个try catch块。如果有抛出,你甚至不会知道你的代码没有执行。
以上是 基本Js功能可以缩放两个DIV的高度 的全部内容, 来源链接: utcz.com/qa/262315.html