如何动态改变框架的大小
解决思路
在框架所加载页中用parent.frames["框架名"].cols="值1,值2..." 或者parent.frames["框架名"].rows="值1,值2..."来动态设置框架大小。
具体步骤
1.直接隐藏或显示。
(1).框架页代码。

<frameset cols="100,*" name="frame1">
<frame src="about:blank">
<frame src="demo.htm">
</frameset>

或者

<frameset rows="100,*" name="frame1">
<frame src="about:blank">
<frame src="demo.htm">           
</frameset>

(2).demo.htm页的代码。

<button onClick="parent.frames[’frame1’].cols=’0,*’">隐藏左框架</button>
<button onClick="parent.frames[’frame1’].cols=’100,*’">显示左框架</button>

或者

<button onClick="parent.frames[’frame1’].rows=’0,*’">隐藏上框架</button>
<button onClick="parent.frames[’frame1’].rows=’100,*’">显示上框架</button>

2.匀速改变框架尺寸。
(1)框架页代码。

<frameset cols="100,*" name="frame1">
<frame src="about:blank">
<frame src="demo.htm">
</frameset>

(2)demo.htm页代码。

<script>
//step为框架尺寸改变的速度步长
//flag为判断当前状态是显示(1)还是隐藏(-1)
var obj,w,step=3,flag=-1        
function showHideFrame(b){
    obj=parent.frames[’frame1’]     //目标框架对象
    w=parseInt(obj.cols.split(",")[0])     
/*目标框架对象的当前宽度,本例中obj.cols取得的值为"100,*"(显示状态时为"0,*"),obj.cols.split(",")把obj.cols以","为标志分组,得到数组["100","*"],obj.cols.split(",")[0]取到数组的第一个元素100,然后用parseInt(obj.cols.split(",")[0])转化为整数*/
    flag=b               //根据参数值b,设置显示隐藏状态
    resize()             //调用resize()函数
}
function resize(){
//调整目标框架对象宽度值,如果flag为1即显示框架时w不断变大,
//反之不断变小
    w+=step*flag
    if((flag==-1&&w>0)||(flag==1&&w<100)){
//隐藏状态并且w大于0或者显示状态并且w<100,执行下面的代码
       obj.cols=w+",*"              //重设框架宽度
        setTimeout("resize()",10) //10毫秒后再次执行resize()函数
    }
}
</script>
<button onClick="showHideFrame(-1)">隐藏左框架</button>
<button onClick="showHideFrame(1)">显示左框架</button>

代码运行效果:

图1.6.1 第3步的代码运行效果

图1.6.2 单击【隐藏左框架】时的效果(左框架正在缩小)

3.对于内嵌浮动框架iframe,它的属性必须使用前缀 document.all ,或者以document.getElementsByName("框架名")和document.getElementById("框架名")这三种方式访问。
(1)捕获iframe对象的三种方法演示。

<iframe name="demo" src="about:blank" width="300"></iframe><br>
<button onClick="document.all.demo.style.display=’inline’">
show</button>
<button onClick="document.getElementsByName(’demo’)[0].style.display=’inline’">show</button>
<button onClick="document.getElementById(’demo’).style.display=’inline’">show</button>

<button onClick="document.all.demo.style.display=’none’">hide</button>
<button onClick="document.getElementsByName(’demo’)[0].style.display=’none’">hide</button>
<button onClick="document.getElementById(’demo’).style.display=’none’">hide</button>

代码运行效果:

图1.6.3捕获iframe对象的三种方法演示

(2)或者把它放到一个元素中,然后控制该元素的显示或隐藏。

<span id="demo"><iframe src="index.asp" name="frame1">
</iframe></span><br>
<button onClick="demo.style.display=’none’">hide</button>
<button onClick="demo.style.display=’inline’">show</button>

(3)通过设置CSS属性clip,实现的匀速显示与隐藏效果。

<script>
var step=0
function resize(flag){
  step+=5*flag
  document.all.demo.style.clip="rect(0 "+step+"% "+step+"% 0)"
  if(flag==1)
     if(step<100) setTimeout("resize(1)",10)
  if(flag==-1)
     if(step>0) setTimeout("resize(-1)",10)
}
</script>
<button onClick="resize(1)">show</button>
<button onClick="resize(-1)">hide</button><br>
<iframe name="demo" style="position:absolute"></iframe>

代码运行效果:

图1.6.4 iframe的匀速显示与隐藏演示

图1.6.5 单击【hide】按钮时的效果

注意:使用脚本控制iframe的clip属性前必须要设置iframe的position属性为absolute。
试一试:读者可以试着用iframe的width和height属性控制它的隐藏与显示。
特别提示
1.第3步的代码运行效果如图1.6.1所示,图1.6.2为单击【隐藏左框架】时的效果(左框架正在缩小)。
2.三种捕获iframe对象的方法演示效果见图1.6.3。
3.图1.6.4为第4步中(3)的代码运行效果,单击图1.6.4中的 【hide】 按钮后iframe逐渐被全部剪切,效果如图1.6.5所示。

特别说明

本例所涉及的知识点比较多,归纳起来主要是frameset的cols和rows属性获取、iframe对象的捕获和clip属性的应用。
document.all 返回对象所包含的元素集合的引用。
document.frames(parent.frames,top.frames) 获取给定文档定义或与给定窗口关联的文档定义的所有 window 对象的集合。
document.getElementById 获取对 ID 标签属性为指定值的第一个对象的引用。 
document.getElementsByName 根据 NAME 标签属性的值获取对象的集合。

如何动态改变框架的大小[转]相关推荐

  1. 如何动态改变框架的大小

    如何动态改变框架的大小 解决思路: 在框架所加载页中用parent.frames["框架名"].cols="值1,值2..." 或者parent.frames[ ...

  2. jQuery动态改变图片显示大小(修改)

    当我们要显示后台传过来若干个尺寸不一的图片时,为了保证图片大小的一致性及比例的协调,需要动态改变图片显示尺寸.通过搜索,我们可以从网上找到实现此功能的jQuery代码如下.这段代码可以使图片的大小保持 ...

  3. Android之动态改变控件大小

    利用getLayoutParams()方法和setLayoutParams()方法. 三步曲: 1.首先利用getLayoutParams()方法,获取控件的LayoutParams. eg:Layo ...

  4. img超出div width时, jQuery动态改变图片显示大小

    参考: 1. http://blog.csdn.net/roman_yu/article/details/6641911 2. http://www.cnblogs.com/zyzlywq/archi ...

  5. iframe 根据嵌入的页面大小,动态改变iframe的大小

    html: <iframe src="main.html" frameborder="0" scrolling="no" width= ...

  6. 实现div的大小随着内容进行动态改变

    div的动态改变有两种方式: 1.使用百分比的形式来实现div的动态改变的实现代码: #id{width: 30%;height: 40%; } /* 这样一来,该div的宽度和高度将始终分别对应于浏 ...

  7. 使用CAShapeLayer实现一个音量大小动态改变的控件

    一.案例演示 对于实时显示语音音量大小的需求,发现很多人的实现方式通过预放置多张图进行切换进行完成的.这样的处理,不但会浪费App的资源存储空间,而且效率也不高.对于符合某一定规律动态改变的图形,我们 ...

  8. java中的pane,Java中scroll pane的使用(一)– 动态改变其client的大小 | 学步园

    动态改变scroll pane的client的大小,并达到其滚动条出现当client超出我们设定的view port大小时. package com.han; import java.awt.Bord ...

  9. VUE中动态改变字体大小

    VUE中动态改变字体大小 父组件将自己的数据传递送给子组件展示,子组件监听click操作,emit发送出去,父组件监听通过emit发送的信息,改变控制字体大小的postFontSize,通过style ...

最新文章

  1. 模仿滴滴单车解锁的时候,从0%到90%的欺骗加载动画效果
  2. 看过漫改,但你看过「改漫」吗?AI 一键让影视变漫画
  3. 什么是回调函数?回调函数有什么缺点?如何解决回调地狱问题?
  4. iOS开发网络篇—搭建本地服务器(待整理)
  5. BZOJ1051 [HAOI2006]受欢迎的牛 Tarjan 强连通缩点
  6. 【Groovy】编译时元编程 ( ASTTransformation#visit 方法中访问 Groovy 类、方法、字段、属性 | 完整代码示例及进行编译时处理的编译过程 )
  7. golang中的方法
  8. 《数据库SQL实战》获取当前(to_date='9999-01-01')薪水第二多的员工的emp_no以及其对应的薪水salary
  9. Convolutional Neural Networks with Alternately Updated Clique
  10. 3. Active Record(活动记录模式)
  11. Eclipse Android开发环境搭建
  12. 金山毒霸推新产品金山卫士 正面狙击奇虎360
  13. 安卓应用方法数超过64k解决办法:分割Dex
  14. ktt算法 约化_答:那些深度学习《面试》你可能需要知道的
  15. 你好 同样在努力的陌生人
  16. Unity中帧数FPS的显示查看
  17. 通过access口加vlan标签吗_浅谈-华为vlan下access、trunk、hybrid的配置及标签分析
  18. 读书笔记-追风筝的人
  19. 数据库设计:需求分析
  20. python多线程爬取海报图片

热门文章

  1. 免费下载精美网站模板的25个网站推荐
  2. Golang之funcval结构体
  3. python爬虫---实现项目(二) 分析Ajax请求抓取数据
  4. k8s通过label来控制pod的位置
  5. 岭回归——减少过拟合问题
  6. poi控制简单的word
  7. php怎么返回json格式的数据
  8. Spring入门hello world常见问题及解决办法
  9. JTS基本概念和使用
  10. 360董事长周鸿伟在新员工入职培训上的讲话