Jquery ThickBox插件使用心得(不建议使用)


Posted in Javascript onSeptember 08, 2010

大家可以使用官方推荐的一下几个插件

While Thickbox had its day, it is not maintained any longer, so we recommend you use some alternatives. * colorbox 
* jQueryUI Dialog 
* fancybox 
* DOM window 
* shadowbox.js

做项目中发现facebox如果快速单击两下,容易出现黑屏。而且facebox的框架是用table写的,可能因为table相对div在结构方面更稳定些。如果弹出层里是table布局的,样式就会受到facebox的样式影响,还要重新reset一下。

看了下官方的api,我研究了下,做了个整理。看下图:
Jquery ThickBox插件使用心得(不建议使用)
附件中index.html是主页,其它页面都是调用页面。点击index页面,就能看到如图的页面。图、按钮、文字都是可以点的。需要点击的标签都要加上class="thickbox"。当页面出现滚动条时,弹出层固定在窗口的正中间不会移动。当弹出层中只是图片时,图片大小会根据当前窗口的大小进行压缩。所有的弹出层都可以按"esc"退出,除了需要点确认的弹出层外,点击弹出层以外的地方都可以关闭弹出层。
1.展示图片(单张):

<a href="images/single.jpg" title="add a caption to title attribute / or leave blank" class="thickbox"> 
<img src="images/single.jpg" alt="Plant" width="100" height="75" /> 
</a>

2.展示图片(多张):
<a href="images/plant1.jpg" title="add a caption to title attribute / or leave blank" class="thickbox" rel="flowers"> 
<img src="images/plant1.jpg" alt="Plant 1" width="100" height="75"/> 
</a> 
<a href="images/plant2.jpg" title="add a caption to title attribute / or leave blank" class="thickbox" rel="flowers"> 
<img src="images/plant2.jpg" alt="Plant 2" width="100" height="75"/> 
</a> 
<a href="images/plant3.jpg" title="add a caption to title attribute / or leave blank" class="thickbox" rel="flowers"> 
<img src="images/plant3.jpg" alt="Plant 3" width="100" height="75"/> 
</a> 
<a href="images/plant4.jpg" title="add a caption to title attribute / or leave blank" class="thickbox" rel="flowers"> 
<img src="images/plant4.jpg" alt="Plant 4" width="100" height="75"/> 
</a>

这里每个a都要加上rel属性,而且属性值要一样。前后展示图可以通过" > "和" < "来切换

3.弹出层内容在当前页面中时:

<input alt="#TB_inline?height=150&width=400&inlineId=myOnPageContent" title="add a caption to title attribute / or leave blank" class="thickbox" value="Show" type="button"> 
the paragraph and input below in a ThickBox, or 
<input alt="#TB_inline?height=155&width=300&inlineId=hiddenModalContent&modal=true" title="add a caption to title attribute / or leave blank" class="thickbox" value="Show hidden modal content" type="button"> 
<div id="myOnPageContent" style="display:none;"> 
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.</p> 
<p><select name=""><option>test</option></select></p> 
</div> 
<div id="hiddenModalContent" style="display:none;"> 
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.</p> 
<p style="text-align: center;"><input type="submit" onclick="tb_remove()" value=" Ok " id="Login"/></p> 
</div>

第一个input点开的弹出层有input框、title和操作按钮以及文字。第二个input点开的弹出层只有文字。
弹出层的大小是根据input的alt属性里的width和height值来定义的。下面讲到的几种情况也是这样来定义弹出层大小的。

4.调用外部文件,弹出层是iframe

<a href="ajaxFrame.PHP?keepThis=true&TB_iframe=true&height=250&width=400" title="add a caption to title attribute / or leave blank" class="thickbox">Example 1</a> 
<a href="ajaxOverFlow2.html?keepThis=true&TB_iframe=true&height=300&width=500" title="add a caption to title attribute / or leave blank" class="thickbox">Example 2</a> 
<a href="iframeModal.html?placeValuesBeforeTB_=savedValues&TB_iframe=true&height=200&width=300&modal=true" title="add a caption to title attribute / or leave blank" class="thickbox">Open iFrame Modal</a>

如果弹出层是嵌套在iframe里需要添加“TB_iframe=true"。
第一个是调用ajaxFrame.PHP文件。
第二个是调用ajaxOverFlow2.html文件。
第三个是调用了iframeModal.html文件,隐藏了title和操作按钮。

5.调用外部文件,弹出层不是iframe

<a href="ajaxOverFlow.html?height=300&width=400" title="add a caption to title attribute / or leave blank" class="thickbox">Scrolling content</a> 
<a href="ajax.PHP?height=220&width=400" class="thickbox" title="add a caption to title attribute / or leave blank">No-scroll content</a> 
<a href="ajaxLogin.html?height=85&width=250&modal=true" class="thickbox" title="Please Sign In">login (modal)</a> 
<a href="ajaxTBcontent.html?height=200&width=300" class="thickbox" title="">Update ThickBox content</a>

第一个调用ajaxOverFlow.html文件。
第二个调用ajax.PHP文件。
第三个调用ajaxLogin.html文件,form表单。
第四个调用ajaxTBcontent.html文件,弹出层里再调用newTBcontent.html文件。
Javascript 相关文章推荐
jquery 常用操作方法
Jan 28 Javascript
JavaScript中this的使用详解
Nov 08 Javascript
Javascript call和apply区别及使用方法
Nov 14 Javascript
JS阻止用户多次提交示例代码
Mar 26 Javascript
$(document).ready(function() {})不执行初始化脚本
Jun 19 Javascript
谈一谈jQuery核心架构设计
Mar 28 Javascript
jQuery中借助deferred来请求及判断AJAX加载的实例讲解
May 24 Javascript
浅谈几种常用的JS类定义方法
Jun 08 Javascript
vue element项目引入icon图标的方法
Jun 06 Javascript
webpack的 rquire.context用法实现工程自动化的方法
Feb 07 Javascript
Vue实现浏览器打印功能的代码
Apr 17 Javascript
vue组件开发之slider组件使用详解
Aug 21 Javascript
jquery的Tooltip插件 qtip使用详细说明
Sep 08 #Javascript
jquery的Theme和Theme Switcher使用小结
Sep 08 #Javascript
复制小说文本时出现的随机乱码的去除方法
Sep 07 #Javascript
extjs grid设置某列背景颜色和字体颜色的实现方法
Sep 06 #Javascript
动态加载图片路径 保持JavaScript控件的相对独立性
Sep 06 #Javascript
Document对象内容集合(比较全)
Sep 06 #Javascript
Jquery优化效率 提升性能解决方案
Sep 06 #Javascript
You might like
基于PHP+MySQL的聊天室设计
2006/10/09 PHP
深入理解php printf() 输出格式化的字符串
2016/05/23 PHP
微信随机生成红包金额算法php版
2016/07/21 PHP
PHP单文件上传原理及上传函数的封装操作示例
2019/09/02 PHP
让iframe自适应高度(支持XHTML,支持FF)
2007/07/24 Javascript
JavaScript 对象链式操作测试代码
2010/04/25 Javascript
js异常捕获方法介绍
2013/04/10 Javascript
解决jquery版本冲突的有效方法
2014/09/02 Javascript
$(&quot;&quot;).click与onclick的区别示例介绍
2014/09/25 Javascript
nodejs教程之入门
2014/11/21 NodeJs
JavaScript实现数组在指定位置插入若干元素的方法
2015/04/06 Javascript
jquery常用函数与方法汇总
2015/09/01 Javascript
js电话号码验证方法
2015/09/28 Javascript
javaScript事件学习小结(四)event的公共成员(属性和方法)
2016/06/09 Javascript
AngularJS封装指令方法详解
2016/12/12 Javascript
jQuery获取table下某一行某一列的值实现代码
2017/04/07 jQuery
JS传参及动态修改页面布局
2017/04/13 Javascript
实例分析js事件循环机制
2017/12/13 Javascript
微信小程序全局变量功能与用法详解
2019/01/22 Javascript
基于vue 动态菜单 刷新空白问题的解决
2020/08/06 Javascript
Openlayers实现扩散的动态点(水纹效果)
2020/08/17 Javascript
[20:30]职业巡回赛回顾
2018/08/09 DOTA
Python获取Linux系统下的本机IP地址代码分享
2014/11/07 Python
Python使用struct处理二进制的实例详解
2017/09/11 Python
python模拟表单提交登录图书馆
2018/04/27 Python
python同时替换多个字符串方法示例
2019/09/17 Python
python argparse模块通过后台传递参数实例
2020/04/20 Python
tensorflow 2.0模式下训练的模型转成 tf1.x 版本的pb模型实例
2020/06/22 Python
解决python 执行shell命令无法获取返回值的问题
2020/12/05 Python
工程造价管理专业大专生求职信
2013/10/06 职场文书
总经理助理岗位职责
2013/11/08 职场文书
一年级评语大全
2014/04/23 职场文书
2014个人四风对照检查材料思想汇报
2014/09/18 职场文书
2015年专项整治工作总结
2015/04/03 职场文书
MySQL数据库表约束讲解
2022/06/21 MySQL
解决ubuntu安装软件时,status-code=409报错的问题
2022/12/24 Servers