自适应页面高度
困扰了我很久的问题:我很想让一个框架左侧的菜单(控件或者是折叠的LI或者别的),能够自动适应浏览器的变化。因为即使是同一分辨率,页面中的实际高度也不同。不过非常遗憾,网上的文章可谓无数,但基本都不能解决问题。基本上是这两类:
1、页面中嵌了IFrame,希望Iframe不出现滚动条,大小刚刚和页面大小一样,这个基本方法,都是用页面的document.body.scrollHeight属性
来完成的。其实我也是用Iframe,因为我的折叠菜单是用css+div实现的,没法用滚动条,所有我用一个Iframe来装它,当菜单过长时,由Iframe来显示滚动条。所以我需要的刚好相反:我要让Iframe的大小刚好等于浏览器页面的大小。
理论上讲,document.body.clientHeight可以解决这个问题,但实际上不行。
2、基本讲的都是用CSS来自适应页面高度,这里不是这个问题。
最后,还是在cnblogs上找到了答案:
http://dflying.cnblogs.com/archive/2006/03/27/360145.aspx
不由得再次感叹:一千个copy的长篇大论,不如原创的一句话!
我的代码:
<SCRIPT LANGUAGE="JavaScript">
function window.onload()
{
document.getElementById("I1").height=document.documentElement.clientHeight;
document.getElementById("I1").width=document.documentElement.clientWidth;
//document.getElementById("I1").width=240; //document.getElementById("I1").contentWindow.document.body.scrollHeight
}
</SCRIPT>
参考:控制IFrame大小,不显示滚动条的方法 使用JS代码,方法有二: 1。
function window.onload()
{
parent.document.all("I1").style.height=document.body.scrollHeight+15;
parent.document.all("I1").style.width=document.body.scrollWidth+10;
}
2。
function window.onload()
{
window.resizeTo(document.body.scrollWidth+10,document.body.scrollHeight+10);
}
</script>
方法一的显示效果很好,但由于需要和主页面通信(parent……),对于一些将主页面和嵌入式页面放在不同主机的用户来说,就不能使用了,因为这是一个跨域访问 方法二是一种不错的办法,但由于不需要和主页面通信,当主页面显示速度很快时,嵌入式页面的JS代码可能不起作用。于是,我修改了方法二:
<script language="Javascript">
var times=0;
function window.onload(){
resize=window.setInterval("resizenow();",1000);
}
function resizenow(){
window.resizeTo(document.body.scrollWidth+10,document.body.scrollHeight+10);
if(++times>10){
clearInterval(resize);
}
}
</script>
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Centos7 离线安装MySQL
- springboot 事务,多张表的操作事务回滚
- 移动硬盘显示盘符但是打不开,提示加密
- GORM V2 模型定义、约定、标签
- 字符串:简单的反转还不够!
- TypeScript 实战算法系列(七):实现图的遍历
- 63. Vue MUI的基本使用
- 初学web自动化测试--笔记1
- R语言作图——Line plot with error
- Python自学成才之路 玩转虚拟环境
- 基于腾讯云的 Rust 和 WebAssembly 函数即服务
- 谷歌开源NLP模型可视化工具LIT,模型训练不再「黑箱」
- Python 装饰器填坑指南 | 最常见的报错信息、原因和解决方案
- 社区开源框架预制件相关模块:CollectManager详解
- Kettle构建Hadoop ETL实践(三):Kettle对Hadoop的支持