借用JQuery在网页中实现分隔条的功能

在C/S系统中有专门的分隔条控件,很方便实现,但在Asp.net中却没有。本文介绍了一种使用JQuery技术实现分隔条的功能。

Javascript代码如下,将该代码保存成JS文件后在HTML中引用。

jsplit

  1 jQuery.noConflict();
  2 jQuery.fn.extend({
  3     jsplit: function (j) {
  4         return this.each(function () {
  5             j = j || {};
  6             j.Btn = j.Btn || {};
  7             j.Btn.oBg = j.Btn.oBg || {};
  8             j.Btn.cBg = j.Btn.cBg || {};
  9             var jun = { MaxW: "600px"
 10                         , MinW: "260px"
 11                         , FloatD: "left"
 12                         , IsClose: false
 13                         , BgUrl: ""
 14                         , Bg: "#fff"
 15                         , Btn: { btn: true
 16                                 , oBg: { Out: "#333", Hover: "orange" }
 17                                 , cBg: { Out: "#333", Hover: "orange"}
 18                         }
 19                 , Fn: function () { }
 20             }
 21             j.MaxW = parseInt(j.MaxW) || parseInt(jun.MaxW);
 22             j.MinW = parseInt(j.MinW) || parseInt(jun.MinW);
 23             j.FloatD = j.FloatD || jun.FloatD;
 24             j.IsClose = j.IsClose != undefined ? j.IsClose : jun.IsClose;
 25             j.BgUrl = j.BgUrl || jun.BgUrl;
 26             j.Bg = j.Bg || jun.Bg;
 27             j.Btn.btn = j.Btn.btn != undefined ? j.Btn.btn : jun.Btn.btn;
 28             j.Btn.oBg.Out = j.Btn.oBg.Out || jun.Btn.oBg.Out;
 29             j.Btn.oBg.Hover = j.Btn.oBg.Hover || jun.Btn.oBg.Hover;
 30             j.Btn.cBg.Out = j.Btn.cBg.Out || jun.Btn.cBg.Out;
 31             j.Btn.cBg.Hover = j.Btn.cBg.Hover || jun.Btn.cBg.Hover;
 32             j.Fn = j.Fn || jun.Fn;
 33             var antiD = j.FloatD == "left" ? "right" : "left";
 34             if (j.MinW > j.MaxW) {
 35                 var amax = j.MaxW;
 36                 j.MaxW = j.MinW;
 37                 j.MinW = amax;
 38             };
 39             var _self = this;
 40             var Close = false;
 41             jQuery(_self).css({ position: "relative", float: j.FloatD, overflow: "hidden", padding: "0px" });
 42             jQuery(_self).wrapInner("<div class=‘jsplit-c‘ style=‘top:0px;z-index:9999;zoom:1;width:100%;overflow:hidden;position:relative;height:100%‘></div>");
 43             jQuery(_self).children(".jsplit-c").append("<div class=‘jsplit-e‘ unselectable=‘on‘ style=‘background:#fff;height:100%;width:6px;top:0px;-moz-user-select:none;" + antiD + ":0px;position:absolute;cursor:e-resize;overflow:hidden;z-index:10000;‘><div class=‘jsplit-e-handle‘  unselectable=‘on‘  style=‘height:40px;width:100%;top:50%;margin-top:-20px;left:0;position:absolute;cursor:pointer;-moz-user-select:none;‘></div></div>");
 44             var dw = jQuery(_self).width();
 45             var jsplitc = jQuery(_self).children(".jsplit-c");
 46             var jsplite = jsplitc.children(".jsplit-e");
 47             var jsplith = jsplite.children(".jsplit-e-handle");
 48             if (j.Btn.btn == false) { jsplith.css({ display: "none" }) };
 49             if (jQuery.browser.msie) { document.execCommand("BackgroundImageCache", false, true); }
 50             if (dw > j.MaxW) { jQuery(_self).css({ width: j.MaxW }); }
 51             if (dw < j.MinW) { jQuery(_self).css({ width: j.MinW }); }
 52             jsplite.css({ background: j.Bg, "background-image": j.BgUrl, opacity: 0 })
 53             if (j.IsClose != false) {
 54                 jsplith.css({ background: j.Btn.cBg.Out, "background-image": j.BgUrl })
 55                 _selfclose();
 56             } else {
 57                 jsplith.css({ background: j.Btn.oBg.Out, "background-image": j.BgUrl })
 58             }
 59             jsplith.hover(function () {
 60                 if (Close == false) {
 61                     jQuery(this).css({ background: j.Btn.oBg.Hover, "background-image": j.BgUrl })
 62                 } else { jQuery(this).css({ background: j.Btn.cBg.Hover, "background-image": j.BgUrl }) }
 63             }, function () {
 64                 if (Close == false) {
 65                     jQuery(this).css({ background: j.Btn.oBg.Out, "background-image": j.BgUrl })
 66                 } else { jQuery(this).css({ background: j.Btn.cBg.Out, "background-image": j.BgUrl }) }
 67             })
 68             jQuery(_self).hover(function () { if (Close == false) jsplite.stop().animate({ opacity: 0.85 }, 200) }, function () { if (Close == false) jsplite.stop().animate({ opacity: 0 }, 2000) })
 69             jsplite.mousedown(function (e) {
 70                 j[‘Fn‘] && j[‘Fn‘].call(_self);
 71                 var screenX = e.screenX, w = jQuery(_self).width();
 72                 jQuery(document).mousemove(function (e2) {
 73                     curW = j.FloatD == "left" ? w + (e2.screenX - screenX) : w - (e2.screenX - screenX);
 74                     if (curW >= j.MaxW) { curW = j.MaxW; };
 75                     if (curW <= j.MinW) { curW = j.MinW; };
 76                     jQuery(_self).css({ width: curW });
 77                     dw = curW;
 78                 });
 79                 jQuery(document).mouseup(function () {
 80                     jQuery(document).unbind();
 81                 });
 82                 if (Close == true) {
 83                     jQuery(this).css({ cursor: "e-resize", opacity: 0.8 });
 84                     jQuery(_self).animate({ width: dw }, 200);
 85                     Close = false;
 86                 };
 87                 return false;
 88             });
 89             jsplite.dblclick(function () {
 90                 if (Close == false) {
 91                     _selfclose();
 92                 };
 93                 return false;
 94             });
 95             jsplith.click(function () {
 96                 if (Close == false) {
 97                     _selfclose();
 98                 };
 99                 return false;
100             });
101             function _selfclose() {
102                 jsplite.css({ cursor: "pointer", opacity: 1 });
103                 jsplith.css({ background: j.Btn.cBg.Out, "background-image": j.BgUrl });
104                 jQuery(_self).animate({ width: "6px" }, 400);
105                 Close = true;
106             }
107
108
109         });
110     }
111 });

按以下步骤修改HTML文件:
1. 增加对JQuery和刚刚生成的jsplit.js文件的引用。

<script language=‘javascript‘ src=‘jquery-1.4.4.min.js‘></script>
<script language=‘javascript‘ src=‘jsplit.js‘></script>

2. 为要被拖动大小的DIV或TD定义ID。

<table>
    <tr>
        <td id="tt" style="background:#999999">test</td>
        <td style="background:#009999" width="400">test Table</td>
    </tr>
</table>

3. 增加Javascript调用Split。

<script type="text/javascript">
        $(document).ready(function(){
    jQuery(‘#tt‘).jsplit();
        });
</script>

这样就实现了客户端的分隔条的功能,如下图所示:

时间: 2024-10-04 10:41:02

借用JQuery在网页中实现分隔条的功能的相关文章

JQuery 在网页中查询

最近遇到客户的一个需求,要在网页中添加一个Search 功能,其实对于网页的搜索,Ctrl+F,真的是非常足够了,但是客户的需求,不得不做,这里就做了个关于Jquery Search function的简单研究.欢饮提出不同解决方法. 1,使用Contains函数. 描述: 选择所有包含指定文本的元素. jQuery( ":contains(text)" ) text: 用来查找的一个文本字符串.这是区分大小写的. 这里是官方链接:http://www.jquery123.com/ap

如何在网页中加入一条竖线

HTML没有直接写竖线的专用标记,使用<hr>来做竖线有局限性,所以竖线只能通过表格table来实现.有2种方法可以写竖线,你可任选一种,例如要高90像素的竖线:1. 代码如:<table height=90 style=border-color:000000;border-left-style:solid;border-width:1px><tr><td valign=top>内容</table>效果如: 内容 2.代码如:<table

jquery阻止网页中右键的点击

<body onmousedown="whichElement(event)"> </body> function whichElement(e) { if (e.button == 2 || e.button == 4) { alert("右键被阻止了"); $.preventDefault();//阻止右键 } }

怎样在网页中插入一条分割线

一.横线<hr>,可设置css宽高以及背景色. 二.竖线:方法1,利用块级元素的border属性,如:div{width:1px;height:100px; border-left:1px #000 solid;}方法2,如果是内联元素,则加上display:inline-block;如:span{display:inline-block:width:1px;height:100px;background:green;}方法3,插入做好的背景图.

网页中禁用 复制内容的功能

在<body>标签中添加几个属性值就好: <body oncontextmenu="return false" onselectstart ="return false" onselect="document.selection.empty()" onbeforecopy="return false" >

在 PHP 网页中包含文件 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;

如果多个文件中有重复的代码,则可以将这部分代码写到一个文件中去,然后在需要的地方把这个文件包含进来即可.注意在这个文件中,只需要这些重复的代码,而不需要其它的格式或者什么的,文件名可以随便起,后缀可要可不要. 通过使用包含文件,您可以在自己的网站中的多个网页上轻松包含相同的内容.所谓包含文件是指当网页在浏览器中呈现时动态地包含在网页中的文件. 包含文件可以简化站点的管理工作.例如,您可以创建网站中多个网页上所要包含的网页横幅.网站信息块或菜单之类的内容.这样,当需要更改这些内容时,只需在单个文件

Bootstrap中的进度条

进度条 在网页中,进度条的效果并不少见,比如一个评分系统,比如加载状态等.就如下图所示的一个评分系统,他就是一个简单的进度条效果: 进度条和其他独立组件一样,开发者可以根据自己的需要,选择对应的版本: ? LESS版本:源码文件progress-bars.less ? Sass版本:源码文件_progress-bars.scss ? 编译后版本:bootstrap.css文件第4500行-第4575行 而且Bootstrap框架为大家提供多种样式风格的进度条,供大家使用,这一小节只是给大家直观上

给网页中的元素添加onclick事件(引自锋利的jQuery)

<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta name="generator" content="editplus" /> <title>给网页中的元素添加onclick事件</p></title> <script src="jquery-1.7.1

Chromium中网页加载进度条研究

1.     Shell.java中有成员变量:mProgressDrawable. 该成员变量在方法:onFinishInflate中被初始化. 在该类中有方法:onLoadProgressChanged,该方法中对进度条的值进行改变,并且对刷新完成事件进行反馈. 2.     上面的这个方法是在cc文件中被调用的. 上面方法对应的cc方法是shell_android.cc文件中的LoadProgressChanged方法. voidShell::LoadProgressChanged(Web