window.onload = function(){(
window.onresize = function () {
//获取可见宽度和宽度
//documentElement是整个DOM的根节点,即html
var width = document.documentElement.clientWidth - 180;
var height = document.documentElement.clientHeight - 80;
if(width >= 0){
document.getElementById('main').style.width = width + 'px';
}
if(height >= 0){
document.getElementById('main').style.height = height + 'px';
document.getElementById('sidebar').style.height = height + 'px';
}
})()
};
为什么要加两对 ()()才能在刚进页面时就能调用函数,不加的话必须滚动下才能调用?
这是为啥。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
这段代码写得太烂了,可读性非常差,他的意思是window.onload的时候,去绑定resize,而且同时还要在resize的时候绑定同样一个函数?这思维太混乱了。
你知道 window.onresize = function () {}的返回值是这个函数本身? 有可读性?
这么写好点:
在
reseize之前,resizeFn已经被执行过一次了。(function(){})()表示立即执行第一个括号里的function,对应到你的问题,就是页面加载立即执行一次window.onresize方法。这样写还有个好处就是形成了一个函数的局部作用域,不用害怕多人协作时变量冲突了,当然全局变量还是少用为妙。