2017-10-13 80 views
3

在这行javascript中,vanilla js中的等效代码是什么?相当于将html和身高设置为vanillajs中的窗口高度

$('html, body, #wrapper').height($(window).height()); 

这是我的尝试,但它似乎没有正常工作(这似乎不设置任何高度上的所有所有3个元素):

var w=window,d=document, 
    e=d.documentElement, 
    g=d.getElementsByTagName("body")[0]; 
    x=w.innerWidth || e.clientWidth || g.clientWidth,y=w.innerHeight || e.clientHeight || g.clientHeight; 
    document.querySelector("html").clientHeight = g.clientHeight = document.getElementById("wrapper").clientHeight = y; 

回答

3

你可以得到高度窗口使用Window#innerHeight,请使用Document#querySelectorAll选择目标。要遍历elementListquerySelectorAll回报,我们将使用NodeList#forEach(如果不支持的元素列表转换为数组 - 见下文),并设置高度每个元素:

var height = window.innerHeight + 'px'; 
 

 
document.querySelectorAll('html, body, #wrapper').forEach(function(el) { 
 
    el.style.height = height; 
 
});
#wrapper { 
 
    background: red; 
 
}
<div id="wrapper"></div>

如果你需要的元素列表转换为数组:

[].slice.call(document.querySelectorAll('html, body, #wrapper'), 0) 

Array.from(document.querySelectorAll('html, body, #wrapper')) 
相关问题