




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、编写jquery弹出框插件弹出框插件在web开发中经常用到,下面我就讲解一个box弹出框的制作弹出框插件的制作几个步骤1.配置弹出框信息2.执行默认是否弹出信息3.启动之前设置插件位置4.显示弹出框窗口5.在弹出框窗口绑定事件6.绑定拖拽事件7.绑定关闭事件下面我就用代码来编写这个7个步骤的实现,从而来建立一个弹出框。1.配置弹出框信息/弹出框基本配置信息和样式var default= boxUrl:"box/", /弹出窗口链接地址 opacity:0.5, /背景透明度 callBack:null, /是否有回调命令 noTitle:false, /是否有标题 show
2、:false, /默认是否显示 timeout:0 /弹出框消失时间 target:null, /目标 requestType:null, /设置弹出框请求类型 title:"Title", /设置标题名词 drag:true, /是否可以拖拽 ifreameWH: /ifream设置高度和宽度 width:400, height:300 , html:'' /弹出框内容/传递参数和默认参数合并this.options = $.extend(,defaults, options); /弹出对话框颜色 var boxHtml = '<div id
3、="wBox"> <div class="wBox_popup"> <table> <tbody> <tr><td class="wBox_tl"/> <td class="wBox_b"/> <td class="wBox_tr"/> </tr> <tr> <td class="wBox_b"> <div style="width:1
4、0px;"> </div> </td><td> <div class="wBox_body">' + <tr><td class="wBox_dragTitle"> </td><td width="20px" title="关闭"> <div class="wBox_close"></div></td></tr>
5、</table> ') + '<div class="wBox_content" id="wBoxContent"></div></div> </td><td class="wBox_b"><div style="width:10px;"> </div> </td></tr><tr><td class="wBox_bl"/&g
6、t;<td class="wBox_b"/> <td class="wBox_br"/></tr></tbody></table></div> </div>', /背景 background = null, /内容 content = null, $win = $(window), $_this=this; $this=$(this);2.执行默认是否弹出信息/是否默认弹出$win.resize(functionfunction() _this.showBox()
7、;return false;);return this;3.启动之前设置插件位置/设置弹出框的位置function setPosition() /如果弹出窗口没有内容就可以不设置高度 if(!content) return false; /得到当前DOM节点的高度 var width=content.width(), /调整未知 lt=calPosition(width); content.css( left:lt0; top:lt1 ); /得到body的高度 var $bheight=$("body").height(); /得到window窗口的高度 var $whe
8、ight=$win.height(); /得到html页面的高度 $hheight=$("html").height(); /得到最大的高度 $h=Math.max($hheith,$wheight); /设置背景的高度和宽度 background.height($h).width($win.width();/计算弹出框位置function calPosition(w) l=($win.width()-w)/2; t=$win.scrollTop()+$win.height()/9; return l,t;4.显示弹出框窗口this.showBox=function() /
9、移掉wBox_overlay的DOM节点 $("#wBox_ovrlay").remove(); /移掉WBox的DOM节点 $("#wBox").remove(); /将背景先隐藏掉然后添加css并且设置透明度最后加载多body下面 /最后出现function() _this.close(); ) .appendTo('body') .fadeIn(300); /将内容加入到body里面 /注意appendTo的顺序 不能先加载内容再加载背景 content=$(wBoxHtml).appendTo('body'); /
10、绑定点击事件 handleClick();5.在弹出框窗口绑定事件 /* * 处理点击 * param string what */function handleClick() var con = C.find("#wBoxContent"); ififvarfunction() img.appendTo(con.empty(); setPosition(); ); else iffunction(data) con.html(data); C.find('.wBox_close').click(_this.close); setPosition(); )
11、elsefunction() try $it = $(this).contents(); $it.find('.wBox_close').click(_this.close); fH = $it.height();/iframe heightif (!newH) return; var lt = calPosition(newW); C.css( left: lt0, top: lt1 ); $(this).css( height: newH, width: newW ); catch (e) ); else iftrue).show().appendTo(con.empty(
12、); else ifelse $t.clone(true).show().appendTo(con.empty(); afterHandleClick(); /* * 处理点击之后的处理 */ function afterHandleClick() setPosition(); C.show().find('.wBox_close').click(_this.close).hover(function() $(this).addClass("on"); , function() $(this).removeClass("on"); );
13、$(document).unbind('keydown.wBox').bind('keydown.wBox', function(e) if (e.keyCode = 27) _this.close(); return true ); typeofnullnull; if6.绑定拖拽事件/* * 拖拽函数drag */function drag() var dx, dy, moveout; var T = C.find('.wBox_dragTitle').css('cursor', 'move'); T.bind
14、("selectstart", function() return false; ); T.mousedown(function(e) dx = e.clientX - parseInt(C.css("left"); dy = e.clientY - parseInt(C.css("top"); C.mousemove(move).mouseout(out).css('opacity', 0.8); T.mouseup(up); ); /* * 移动改变生活 * param Object e 事件 */ functio
15、n move(e) moveout = false; if (e.clientX - dx < 0) l = 0; else if (e.clientX - dx > $win.width() - C.width() l = $win.width() - C.width(); else l = e.clientX - dx C.css( left: l, top: e.clientY - dy ); /* * 你已经out啦! * param Object e 事件 */ function out(e) moveout = true; setTimeout(function() moveout && up(e); , 10); /* * 放弃 * param Object e事件 */ function up(e) C.unbind(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 创新组织结构改革3篇
- 户口查询委托书填写模板3篇
- 新人房地产下半年工作计划范文(5篇)
- 小学六年级期末老师年终工作总结2025(8篇)
- 民事纠纷调解协议书
- 五年级上学期美术教学计划(4篇)
- 商城建设方案(5篇)
- 上海音乐学院社会教育学院招聘笔试真题2024
- 2024年罗甸县第一医共体板庚分院招聘专业技术人员考试真题
- 贵港桂平市江口中心卫生院招聘笔试真题2024
- 2025-2030中国干燥剂行业发展分析及发展前景与投资研究报告
- 新疆维吾尔自治区和田地区2024-2025学年高三5月考试题语文试题试卷含解析
- 环保安全知识课件
- 比例尺单元测试卷及答案
- 氩弧焊基本知识课件
- 《广西壮族自治区基层工会经费收支管理实施办法》修订解读
- 2024北京朝阳城市发展集团有限公司社会化招聘专场笔试参考题库附带答案详解
- 中职语文教学大赛教学实施报告范文与解析
- 山东临沂市罗庄区兴罗投资控股有限公司招聘笔试题库2025
- 北京市朝阳区2025届高三下学期一模试题 数学 含答案
- 食品工厂5S管理
评论
0/150
提交评论