发文章
发文工具
撰写
网文摘手
文档
视频
思维导图
随笔
相册
原创同步助手
其他工具
图片转文字
文件清理
AI助手
留言交流
在《弹出层之1:JQuery.Boxy (一)》中讲到了JQuery.Boxy的基本用法,本次讲下手动创建实例,new一个boxy对象是很容易的,传递一些参数对象就能满足不同的需求了。
4.1、手动创建实例
方法:Boxy.load(url, options)以一个URL加载内容并以Boxy对话框的形式展现。支持以下的一些选项参数: 类型 - HTTP方法,默认为GET缓存 - 如果是true,缓存内容连续通话。相当于缓存选项传递到jQuery的Ajax方法。默认:false。过滤 - jQuery的表达式,用于过滤远程内容。(任何其他指定的选项将被传递到boxy的构造函数中)
Boxy.get(element)返回包含元素的实例,例如:<a href="#" onclick="Boxy.get(this).hide();">关闭对话框</a>
Boxy.ask(question, answers, callback, options)显示模式,即非可关闭对话框,允许用户选择选项。问题是要显示给用户的信息。答案是一个数组或一切可能的回答的数列。回调函数将收到选定的回答,这是否是需要的值或相应的密钥要根据一个数组或答案数列是否已经提供了。options是一种额外的可选设置选项传递给对话框的构造函数。
Boxy.alert(message, callback, options)显示模式,非可关闭对话框显示消息给用户。注意:此方法并不是为了取代浏览器本地window.alert()函数提供,因为它没有能力阻止程序执行,在对话框是可见的时候。
Boxy.confirm(message, callback, options)显示模式,非可关闭对话框显示的含有确定和取消按钮的消息。回调只会在用户选择了“确定”时被调用。注意:此方法并不是为了取代浏览器提供的本地window.confirm()函数,因为它没有能力在对话框可见时阻止程序执行的。
Boxy.linkedTo(ele)返回已通过执行器构造函数选项连接DOM元素的boxy实例。
Boxy.isModalVisible()返回true如果任何模式对话框是当前可见的,否则返回false。
new Boxy(element, options)构造函数;创建一个新的boxy对话框。element是对话框的内容;任何有效的参数,jQuery的$()函数在这里也是有效的。options是一个配置选项的散列,见下面详细的资料。
estimateSize()当对话框不可见的时候估计其大小。如果当前对话框可见,不要使用此方法,使用getSize()代替。
getSize()以数组的形式[width, height]返回对话框的大小。
getContentSize()返回对话框内容区域的大小。默认情况下,指在对话框框架里的一切,不包括标题栏。
getPosition()以[x,y]数组形式返回最顶层对话框的左上角坐标。
getCenter()以[x,y]数组形式返回最顶层对话框的中心点的坐标。
getInner()返回一个jQuery对象包装对话框的内部区域-框架内包括标题栏一切。
getContent()返回一个jQuery对象包装对话框的内容区域-框架内的一切,不包括标题栏。
setContent(newContent)设置对话框中的内容,任何对$()有效的参数也对设置的新内容有效。可链接。
moveTo(x,y)移动对话框到左上角为(x,y)的位置,可链接。
centerAt(x,y)把对话框移动到中心坐标为(x,y)的位置上。
center(axis)移动对话框,使其在视野的中央。可选参数axis可以是"x","y"中的任意一个中心轴。可链接。
resize(w,h,after)重新调整对话框的高宽到[w,h],完成后执行回调函数,回调函数将接受Boxy实例作为参数。可链接。
tween(w,h,after)动画补间对话框高宽到[w,h],完成后执行回调函数,回调函数将接受Boxy实例作为参数。可链接。
isVisible()如果当前对话框可见,则返回true,否则返回false。
show()显示对话框,可链接。
hide(after)隐藏对话框,after为可选回调函数,完成后执行。可链接。
toggle()触发对话框的显隐属性。可链接。
hideAndUnload(after)在隐藏后立即执行卸载。在卸载之前执行after回调函数。可链接。
unload()从DOM中删除对话框,切断其与执行机构的联系,如果有的话。一旦出现一个对话框已被卸载它的任何进一步行动都是未定义的。
toTop()将当前对话框移动到其他所有对话框的上部。可链接。
getTitle()以HTML的形式返回对话框的标题。
setTitle(t)设置对话框的标题为t,可链接。
属性:
CSS选择器 .boxy-wrapper .title-bardiv包装的自动生成的标题栏
.boxy-wrapper .title-bar h2标题栏的内容
.boxy-wrapper .title-bar.dragging拖拽时候的标题栏
.boxy-wrapper .title-bar .close默认的关闭对话框的执行器
.boxy-inner内部区域,包括标题栏
.boxy-content内部区域,不包括标题栏。这个class类将被自动添加到传递给Boxy的构造函数的任何元素。
.boxy-wrapper .question通过Boxy.ask()创建的,包含问题文字
.boxy-wrapper .answers通过Boxy.ask()创建的,包含应答的按钮
.close这一class类的任何内容的单击事件将关联到关闭对话框上。
选择器的外框圆角效果是使用png图片实现的,如果想更改透明程度,可以使用ps修改图片;如果不考虑IE6的话,可以使用另一种常用的圆角方法(不用图片只用css样式)。
官网:http:///projects/jquery/boxy/译文:http://www./wordpress/?p=318
本文示例
Boxy是一个基于JQuery的弹出层插件,它有相对漂亮的外观,功能齐全,支持iframe,支持模式窗口但相对于同样的弹出层插件BlockUI它明显笨重,但使用不那么方便。
1、下载并修改插件
可以在官网上下载到最新版(http://plugins./files/boxy-0.1.4.zip),到我写这些文字的时候最新版为0.1.4版,下载解压后有1个主要的js文件:jquery.boxy.js;1个css文件;还有4个图片用于构成弹出层的4个圆角。将文件引入系统中,修改boxy.css,将下面的图片路径修改为项目中实际的位置,如果设置不对会引起图片失效,那时就难看了。
2、将插件引用到页面中
3、给匹配的元素绑定boxy行为 <script type="text/javascript"> $(function() { $(".boxy").boxy(); }); </script> <a href="#m1" class="boxy" title="这是超链接的标题">3.1、点我就会弹出一个对话框</a> <div id="m1" style="display: none"> 我是超链接弹出来的</div>
href超链接到要弹出显示内容的文件。
3.3、提交时以确认框形式弹出 <script type="text/javascript"> $(function() { $(".boxy").boxy(); }); </script> <form class="boxy" action="Default.html" method="post"> <input id="Submit1" type="submit" value="3.3、提交时显示弹出层"/> </form>
说明:1、boxy对话框自动计算出您的内容区域内本身的大小和位置,没有必要明确规定了包装集的尺寸;2、上面的简单使用方法中其实是在间接指定boxy中message属性的内容,该属性为弹出框的显示信息,默认为:“请确认:”3、每个匹配锚title属性将被用来作为其相应的对话框的标题4、message的内容的display属性都将设置为block(显示为块)
下载本文示例
JQuery.BlockUI是众多JQuery插件弹出层中的一个,它小巧(原版16k,压缩后10左右),容易使用, 功能齐全,支持Iframe,支持Modal,可定制性高也意味他默认谦虚的外表。
jQuery的BlockUI插件可以让你在使用AJAX时模拟同步行为,锁定浏览器(模式窗口)。当被激活时,它会防止用户活动的页面(或页面的一部分),直到它被禁用。 BlockUI添加元素的DOM,给它的外观和阻止用户交互行为。
1、首先引入插件
2、调用
3、样式修改
jQuery blockUI 提供的默认样式过于朴素, 可以在每一次调用blockUI() 函数时进行修改. 也一次直接修改库文件 jquery.blockUI.js, 修改$.blockUI.defaults 对象相关的代码:
总结:上面的文字个人认为写的比较烂,但基本的使用没有问题,详尽的支持是官网:http://www./jquery/block/,这个站还有一些其它插件也值得看看。
本文示例下载
tipswindow是一个很一般的JQuery弹出层插件,但使用简单,有相对漂亮的外观,代码比较通俗。下面介绍使用方法:
1、首先引入该插件相关文件,分别是样式,JQuery库,该插件
2、修改tipswindow.css文件中图片的路径,默认与css文件在同一个目录下。3、编写代码,如在图片上设置单击事件后放大显示图片:
其它用法网友总结如下:1.弹出文本信息提示: tipsWindown("提示","text:提示信息内容","250","150","true","","true","msg")
2.弹出页面中的某个ID的html: tipsWindown("标题","id:testID","300","200","true","","true","id")
3.弹出图片: tipsWindown("图片","img:图片路径","250","150","true","","true","img")
4.get加载一个.html文件(也可以是.php/.asp?id=4之类的): tipsWindown("标题","url:get?test.html","250","150","true","","true","text");
5.加载一个页面到框架显示:tipsWindown("标题","iframe:http://","900","580","true","","true","leotheme");
6.弹出一个不能拖动且没有遮罩背景的文本信息层: tipsWindown("提示","text:提示信息内容","250","150","false","","false","msg")
7.弹出一个不能拖动,三秒钟自动关闭的层: tipsWindown("提示","text:提示信息内容","250","150","false","3000","true","msg")
1、下载本文示例2、下载官方最新示例与框架(推荐)官网:http:///javascript/jquery-plugins-tipswindow-2-0.html
jquery.validate是基于jquery的一个B/S客户端验证框架,借助jquery的优势,我们可以迅速验证一些常见的输入,大大提高了开发效率,下面是本人做的学习笔记:
示例源码下载
注意:validate只是使验证变得方便,简单,本质还是使用js,不论多么强大的js验证,当用户把js禁用或使用机器直接发起请求时都不能确保数据的完整性,所有不要把希望寄托在客户端验证,个人认为每一个客户端验证都要服务器进行再次验证。
radio、checkbox、select的验证其实方法与前面提到没有太大的区别,但问题是错误信息会显示在同一组的第一个元素后面,效果如下所示:
解决这个问题的办法是将错误信息指定到一个特定的位置,validate()方法的参数中可以进行自定义,示例代码如下:
运行结果如下:
此外:如果在参数中加上debug:true则只用于调试表单不会提交到服务器; submitHandler: function() {}将会在表单提交到服务器前执行一些操作;用remote可以进行Ajax验证,好像有个小bug;在使用ASP.NET与validate组合使用时会有一些问题可以参考网友的博文。
1、在ASP.NET中按钮都会解析成submit所有都会触发验证,如果想让某个按钮不触发验证可以加上这个样式:class="cancel"
源码下载
运行结果:
注意,如果参数有多个可以使用数组,如regex:[1,3,5],方法中可以使用下标访问:params[0]
网友提供的一些扩展验证方法:// 手机号码验证jQuery.validator.addMethod("mobile", function(value, element) { var length = value.length; var mobile = /^(((13[0-9]{1})|(15[0-9]{1}))+\d{8})$/ return this.optional(element) || (length == 11 && mobile.test(value));}, "手机号码格式错误");
// 电话号码验证 jQuery.validator.addMethod("phone", function(value, element) { var tel = /^(0[0-9]{2,3}\-)?([2-9][0-9]{6,7})+(\-[0-9]{1,4})?$/; return this.optional(element) || (tel.test(value));}, "电话号码格式错误");
// 邮政编码验证 jQuery.validator.addMethod("zipCode", function(value, element) { var tel = /^[0-9]{6}$/; return this.optional(element) || (tel.test(value));}, "邮政编码格式错误");
// QQ号码验证 jQuery.validator.addMethod("qq", function(value, element) { var tel = /^[1-9]\d{4,9}$/; return this.optional(element) || (tel.test(value));}, "qq号码格式错误");
// IP地址验证jQuery.validator.addMethod("ip", function(value, element) { var ip = /^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/; return this.optional(element) || (ip.test(value) && (RegExp.$1 < 256 && RegExp.$2 < 256 && RegExp.$3 < 256 && RegExp.$4 < 256));}, "Ip地址格式错误");
// 字母和数字的验证jQuery.validator.addMethod("chrnum", function(value, element) { var chrnum = /^([a-zA-Z0-9]+)$/; return this.optional(element) || (chrnum.test(value));}, "只能输入数字和字母(字符A-Z, a-z, 0-9)");
// 中文的验证jQuery.validator.addMethod("chinese", function(value, element) { var chinese = /^[\u4e00-\u9fa5]+$/; return this.optional(element) || (chinese.test(value));}, "只能输入中文");
// 下拉框验证$.validator.addMethod("selectNone", function(value, element) { return value == "请选择";}, "必须选择一项");
// 字节长度验证jQuery.validator.addMethod("byteRangeLength", function(value, element, param) { var length = value.length; for (var i = 0; i < value.length; i++) { if (value.charCodeAt(i) > 127) { length++; } } return this.optional(element) || (length >= param[0] && length <= param[1]);}, $.validator.format("请确保输入的值在{0}-{1}个字节之间(一个中文字算2个字节)"));源码下载
我们先来使用firebug查看在前面的示例中JS产生的html错误提示:
html与前面的示例相同在上一个示例的基础上添加了一个messages项,为其指定了一个对象类型的值,与rules基本对应,特意没有指定email的错误信息,运行结果如下:
远行结果:
注意:在ASP.NET中使用这种JS验证方法最好将服务器控件Id替换成客户端Id,如:<%=控件Id.ClientId %>,<%=控件Id.UniqueId>
来自: Ethan的博客 > 《网页制作云》
0条评论
发表
请遵守用户 评论公约
jQuery登陆判断简单实现代码
} }) }) < /script> < /head> < body> 用户名:<input id="txtUserName" type="text" value="请输入用户名" /><br /> 密 码:<input ...
jQuery 强大的jQuery弹出层插件–BlockUI
jQuery 强大的jQuery弹出层插件–BlockUI经常会有些同志问我有没有好用的基于jQuery的弹出层插件,我通常都会毫不犹豫的推荐他这款插件–BlockUI。BlockUI的下载地址是:hhttp://jquery.malsup.com/blo...
JS~重写alter与confirm,让它们变成fancybox风格
JS~重写alter与confirm,让它们变成fancybox风格插件与系统命令。} window.confirm = function (msg, callBack) { $.fancybox($("#MessageBox_delete").html(), { '''''...
弹出对话框
弹出框ClientScript.RegisterClientScriptBlock(GetType(), "", "<script>alert(''请先选择数据!'')</script>");
UI前台 加载等候插件
BlockUI 无论是功能还是界面定制性都比 LoadMask 要丰富些,例如 BlockUI 提供了 Overlay 遮罩层的渐入渐出式动画显示,JS 中的样式定制,消息提示的支持,提示层可显示在右上角,还可做出模态窗口,以...
【JS常用代码】Jquery鼠标移入显示效果
编写一个jquery插件
编写一个jquery插件<head> <script type="text/javascript">//编写一个名字为color的jquery插件 ;(function ($) { jQuery.fn.extend({ "color": f...
jQuery框架学习第七天:jQuery动画–jQuery让页面动起来! - 学IT网 x...
开发人员一直痛疼做动画. 但是有了jQuery你会瞬间成为别人(那些不知道jQuery的人)眼里的动画高手! 本文将介绍jQuery的动画相关函数.原来做动画如此简单!基本动画函数: 既有透明度渐变, 又有滑动效果. ...
网站开发常用jQuery插件总结(二)弹出层插件Lightbox
网站开发常用jQuery插件总结(二)弹出层插件Lightbox_me.本文介绍的插件Lightbox_me可以完美的支持chrome,firefox和ie7,ie8,ie9等主流浏...
微信扫码,在手机上查看选中内容