一篇文章讲明白iframe分栏拖拽伸缩例子

简介: 一篇文章讲明白iframe分栏拖拽伸缩例子

这个标题有些绕口,鄙人愚笨,实在找不到一个比较准确的说法,总之就是:

一个页面内显示多个iframe,一个变宽,另一个就变窄,一个变高,另一个就变矮的这种可自由伸缩的效果。它们之间有一个可多拽的分隔条。

我们公司的电算化考试平台需要这样的效果。最开始用的frameset,框架集,但有些问题,比如分隔条的样式不好自己设计,frameset页面不支持执行javascript。

后来我对其进行了改进,将frameset改为使用iframe,通过自己实现分隔条和拖拽效果来满足功能。

效果图:

可以点击分隔条折叠,也可以拖动分隔条调整各区域大小。

上图中,main.html页面按左右分隔嵌入了一个left.html和一个right.html

right.html里又按上下分隔嵌入了right_top.html和right_bottom.html

由于left.html、right_top.html、right_bottom.html是具体内容页面,此处不贴出代码,只贴出main.html和right.html的代码。

main.html代码:

1 <!DOCTYPE html

2 [/span>html

3 [/span>head

4 [/span>meta http-equiv="Content-Type" content="text/html; charset=UTF-8"

5 [/span>meta http-equiv="X-UA-Compatible" content="IE=edge"

6 [/span>meta name="renderer" content="webkit"

7 [/span>script type="text/javascript" src=""

8 [/span>style type="text/css"

9 {padding:0px;margin:0px;}//代码效果参考:http://www.ezhiqi.com/zx/art_5594.html

10 html,body{Width</span>:100%;Height</span>:100%;}

11

12 [/span>title

13 [/span>script type="text/javascript"

14 /**

15

16 iframe横向分隔条拖拽伸缩实例 陈建宇 2016-6-14

17

18 **/

19 function init(){

20

21 var li = $("#li");//left iframe

22 var ri = $("#ri");//right iframe

23 var s = $("#s");//中间分割条

24 var img = s.children("img").eq(0);

25 var drag = $("#drag");//分隔条中的拖拽层.

26

27 var clientWidth = $(window).width();

28 var li_init_Width</span>=270;//上边iframe要显示的宽度,若需要调整默认宽度,请改此值即可.

29 var s_init_Width</span>=10;//分隔条宽度默认值

30 var ri_Width</span>=clientWidth</span>-li_init_Width</span>-s_init_width;//底部iframe要显示的宽度

31

32 //初始化

33 li.css("Width</span>",li_init_Width</span>+"px");

34 ri.css("Width</span>",ri_Width</span>+"px");

35 s.css("left",li_init_Width</span>+"px").css("Width</span>",s_init_Width</span>+"px");

36 img.css("Width</span>",s_init_Width</span>+"px").css("box-shadow","0 0 6px #666");

37

38 var is_drag = false;//是否点住并进行了拖拽

39

40

41 /**

42 分隔条事件处理,如果用户执行了mousedown,mousemove,mouseup说明是拖拽,

43 如果只执行了mousedown,mouseup说明是点击.

44 /

45

46

47 drag.unbind("mousedown").mousedown(function () {

48 //获得分隔条内拖拽层离顶边的距离

49 var li_width = parseInt(li.css("Width</span>"));

50 var ri_width = parseInt(ri.css("Width</span>"));

51

52 //分隔条div宽度设为100%,撑满屏,只有这样才能在拖拽分隔条时,有效的控制mouseup事件.

53 s.css("Width</span>","100%").css("left","0px");

54 img.css("left",li_width);

55

56 var start_x = event.clientX;

57

58 drag.unbind("mousemove").mousemove(function (event) {

59 is_drag = true;

60 var current_x = event.clientX;

61 var cha = current_x - start_x;//算偏移差量

62

63 li.css("Width</span>",(li_Width</span>+cha)+"px");

64 <span style="background-color: rgba(245, 245, 2

相关文章
|
9天前
|
前端开发 JavaScript
原生撸移动端顶部滚动菜单栏,实现可滚动控制滚动边界动态样式
本文介绍了如何使用原生HTML、CSS和JavaScript创建一个移动端可滚动的顶部菜单栏。文章提供了详细的HTML结构、CSS样式和JavaScript代码,实现了菜单项的横向滚动、边界控制和动态样式变化。同时,还展示了如何通过触摸事件监听来控制菜单项的滚动和激活状态。
20 2
原生撸移动端顶部滚动菜单栏,实现可滚动控制滚动边界动态样式
|
5月前
|
移动开发 监控
表格中有WKWebView底部有空白问题及解决方案优缺点
表格中有WKWebView底部有空白问题及解决方案优缺点
54 0
|
5月前
简单讲述ondragstart、drag、ondragend、ondragenter、ondragover、ondrop、ondragleave七个与拖拽相关的监听事件,并运用实现拖拽过程放置样式变化
简单讲述ondragstart、drag、ondragend、ondragenter、ondragover、ondrop、ondragleave七个与拖拽相关的监听事件,并运用实现拖拽过程放置样式变化
|
5月前
|
前端开发
前端如何创建好看的简洁的蒙版弹窗
前端如何创建好看的简洁的蒙版弹窗
|
算法 API C#
Winform控件优化之圆角按钮【各种实现中的推荐做法】(下)
最终优化实现ButtonPro按钮(继承自Button),既提供Button原生功能,又提供扩展功能,除了圆角以外,还实现了圆形、圆角矩形的脚尖效果、边框大小和颜色、背景渐变颜色...
1750 0
Winform控件优化之圆角按钮【各种实现中的推荐做法】(下)
|
前端开发 数据可视化
漏刻有时数据大屏CSS样式表成长教程(3):使用样式表做圆环指示图标
漏刻有时数据大屏CSS样式表成长教程(3):使用样式表做圆环指示图标
224 2
|
小程序 算法 前端开发
小程序之移花宫-自定义底部标签图标---【浅入深出系列005】
小程序之移花宫-自定义底部标签图标---【浅入深出系列005】
|
JavaScript 前端开发 Java
jquery实现动态表格项目(表格增加删除/全选/表格变色特效等功能)(附源码+javaWEB开发如果需要可以直接使用)
jquery实现动态表格项目(表格增加删除/全选/表格变色特效) 🍅 Java学习路线:搬砖工的Java学习路线 🍅 作者:程序员小王 🍅 程序员小王的博客:https://www.wolai.com/wnaghengjie/ahNwvAUPG2Hb1Sy7Z8waaF 🍅 扫描主页左侧二维码,加我微信 一起学习、一起进步 🍅 欢迎点赞 👍 收藏 ⭐留言 📝
324 0
jquery实现动态表格项目(表格增加删除/全选/表格变色特效等功能)(附源码+javaWEB开发如果需要可以直接使用)
|
C# 图形学 Windows
Winform控件优化之圆角按钮【各种实现中的推荐做法】(上)
Windows 11下所有控件已经默认采用圆角,其效果更好、相对有着更好的优化...尝试介绍很常见的圆角效果,通过重写控件的OnPaint方法实现绘制,并在后面进一步探索对应的优化和可能的问题
1322 0
Winform控件优化之圆角按钮【各种实现中的推荐做法】(上)
|
设计模式
带你造轮子,自定义一个随意拖拽可吸边的悬浮View组件
在开发中,随意拖拽可吸边的View还是比较常见的,这种功能网上也有各种各样的轮子,其实写起来并不复杂,看完本文,你也可以手写一个,不到400行代码就能实现一个通用的随意拖拽可吸边的View组件。
607 1