GreyBox技术总结(转)


Posted in Javascript onNovember 23, 2010

类似于thinkbox,lightbox等。用于以一种别致的模式对话框方式展示页面,图片或者其它内容。这是它的官网:http://orangoo.com/labs/GreyBox/

我们先来看一下它的几个实例:

(1) 打开网页:

GreyBox技术总结(转)

(2) 显示一组图片:

GreyBox技术总结(转)

 

基本使用

(1) 进入官网,点击下载

GreyBox技术总结(转)

(2) 解压。(其中的 installation.html 对其使用进行了说明,很简单,一看就明白。我还是写一下步骤吧)

(3) 将其中的 greybox 文件夹拷贝到 web 项目根目录下,注意一定要放在 web 根目录下,放在其他目录或二级目下肯能不能使用,在我的工程里是这么部署的

GreyBox技术总结(转)

(顺便说下教训,一开始我将其放在了 js 文件夹下,因为我的 js 脚本都在里面放的,jQuery 也在,可就是不能用。。。最后放在了 根目录下就可以使用了。)

(4) 现在就可以使用了,我们用一个测试页来进行测试,代码如下:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<html> 
<head> 
<title>test.html</title> 
<!-- GreyBox引用开始 --> 
<script type="text/javascript"> 
var GB_ROOT_DIR = "./greybox/"; //注意这里的路径!!! 
</script> 
<script type="text/javascript" src="greybox/AJS.js"></script> 
<script type="text/javascript" src="greybox/AJS_fx.js"></script> 
<script type="text/javascript" src="greybox/gb_scripts.js"></script> 
<link href="greybox/gb_styles.css" rel="stylesheet" type="text/css" /> 
<!-- GreyBox引用结束 --> 
</head> 
<body> 
<a href="http://www.baidu.com" title="百度" rel="gb_page[500, 500]">百度一下</a> 
</body> 
</html>

这样就完成了基本的使用。

但是,在实际开发中,我们需要实现这样的效果:(1) 通过点击 button 来弹出模式窗口;(2) 关闭模式窗口后,刷新父窗口。
通过基本使用,我们可以看到官网的示例都是在点击一个超链接后弹出模态对话框。

GreyBox技术总结(转)

GreyBox技术总结(转)

等等。

但对于实际开发,我们有时需要实现通过点击 Button 来弹出一个模态对话框。其实,稍作修改就可以实现了,由于前篇文章已经对使用做了说明,这次就直接上代码了:

(1) 实现按钮点击弹出模态对话框

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<html> 
<head> 
<title>test.html</title> 
<!-- GreyBox引用开始 --> 
<script type="text/javascript"> 
var GB_ROOT_DIR = "./greybox/"; //注意这里的路径!!! 
</script> 
<script type="text/javascript" src="greybox/AJS.js"></script> 
<script type="text/javascript" src="greybox/AJS_fx.js"></script> 
<script type="text/javascript" src="greybox/gb_scripts.js"></script> 
<link href="greybox/gb_styles.css" rel="stylesheet" type="text/css" /> 
<!-- GreyBox引用结束 --> 
<script type="text/javascript"> 
//居中弹出模态窗口 
function openWinCenter() { 
//GB_showCenter(caption, url, /* optional */ height, width, callback_fn) 
GB_showCenter("百度一下", "http://www.baidu.com", 600, 900); 
} 
//全屏弹出模态窗口 
function openWinFull() { 
//GB_showFullScreen(caption, url, callback_fn) 
GB_showFullScreen("百度一下", "http://www.baidu.com"); 
} 
</script> 
</head> 
<body> 
<input type="button" value="居中弹出" onclick="openWinCenter()"><br/> 
<input type="button" value="全屏弹出" onclick="openWinFull()"><br/> 
</body> 
</html>

具体用法可以看官方文档的“Advance Usage”部分。
(2) 开发过程中还会遇到这样的问题,在弹出窗口进行操作后,关闭时需要对父窗口进行刷新。怎么实现?

我们先看一下普通的 js 是怎么写的

<script language="javascript"> 
 
//弹出窗口 
function openSubWin() { 
window.open("","name1","width=100,height=200,toolbar=no,scrollbars=no,menubar=no,screenX=100,screenY=100"); 
} 
//关闭子窗口,刷新父窗口 
function closeSubWin() { 
window.opener.location = "http://www.baidu.com"; 
window.close(); 
} 
</script>

那如果使用 GreyBox 怎么实现呢?上代码,【注意】这个 js 是在子窗口的网页中写的:
<script type="text/javascript"> 
function close() { 
parent.parent.location.reload(); 
parent.parent.GB_hide(); 
} 
</script>

好了,至此就完成了对于 GreyBox 的学习,这些基本就可以满足我们日常的项目需要了。
Javascript 相关文章推荐
JavaScript中清空数组的三种方法分享
Apr 07 Javascript
创建、调用JavaScript对象的方法集锦
Dec 24 Javascript
JavaScript实现同一页面内两个表单互相传值的方法
Aug 12 Javascript
基于AngularJs + Bootstrap + AngularStrap相结合实现省市区联动代码
May 30 Javascript
解析JavaScript中的字符串类型与字符编码支持
Jun 24 Javascript
原生JS实现在线问卷调查投票特效
Jan 03 Javascript
Vue单文件组件的如何使用方式介绍
Jul 28 Javascript
Node.js+Express+Mysql 实现增删改查
Apr 03 Javascript
vue 移动端注入骨架屏的配置方法
Jun 25 Javascript
vue vant Area组件使用详解
Dec 09 Javascript
jQuery实现颜色打字机的完整代码
Mar 19 jQuery
jQuery实现点击滚动到指定元素上的方法分析
Mar 19 jQuery
Js基础学习资料
Nov 23 #Javascript
JavaScript 程序编码规范
Nov 23 #Javascript
javascript整除实现代码
Nov 23 #Javascript
flexigrid 参数说明
Nov 23 #Javascript
js 判断checkbox是否选中的实现代码
Nov 23 #Javascript
js 处理URL实用技巧
Nov 23 #Javascript
两个Javascript小tip资料
Nov 23 #Javascript
You might like
在DC的漫画和电影中,蝙蝠侠的宿敌,小丑的真名是什么?
2020/04/09 欧美动漫
PHP+Mysql+jQuery实现发布微博程序 jQuery篇
2011/10/08 PHP
php中利用str_pad函数生成数字递增形式的产品编号
2013/09/30 PHP
phpStudy 2016 使用教程详解(支持PHP7)
2017/10/18 PHP
JS类的封装及实现代码
2009/12/02 Javascript
javascript多种数据类型表格排序代码分析
2010/09/11 Javascript
javascript手工制作悬浮菜单
2015/02/12 Javascript
在JavaScript中处理时间之getHours()方法的使用
2015/06/10 Javascript
gulp-uglify 与gulp.watch()配合使用时报错(重复压缩问题)
2016/08/24 Javascript
livereload工具实现前端可视化开发【推荐】
2016/12/23 Javascript
微信小程序下拉刷新界面的实现
2017/09/28 Javascript
详解webpack loader和plugin编写
2018/10/12 Javascript
Vue递归组件+Vuex开发树形组件Tree--递归组件的简单实现
2019/04/01 Javascript
JQuery Ajax跨域调用和非跨域调用问题实例分析
2019/04/16 jQuery
js实现跳一跳小游戏
2020/07/31 Javascript
[02:30]DOTA2英雄基础教程 暗影恶魔
2013/12/17 DOTA
[05:03]2018DOTA2亚洲邀请赛主赛事首日回顾
2018/04/04 DOTA
[03:11]TI9战队档案 - Alliance
2019/08/20 DOTA
Python 过滤字符串的技巧,map与itertools.imap
2008/09/06 Python
python实现类似ftp传输文件的网络程序示例
2014/04/08 Python
Python2.7简单连接与操作MySQL的方法
2016/04/27 Python
Python 通配符删除文件的实例
2018/04/24 Python
详解Django-restframework 之频率源码分析
2019/02/27 Python
django 控制页面跳转的例子
2019/08/06 Python
Python如何应用cx_Oracle获取oracle中的clob字段问题
2019/08/27 Python
使用turtle绘制五角星、分形树
2019/10/06 Python
解决Pycharm中恢复被exclude的项目问题(pycharm source root)
2020/02/14 Python
Python如何操作office实现自动化及win32com.client的运用
2020/04/01 Python
使用Python下载抖音各大V视频的思路详解
2021/02/06 Python
CSS3之背景尺寸Background-size使用介绍
2013/10/14 HTML / CSS
BCBG官网:BCBGMAXAZRIA
2017/12/29 全球购物
意大利在线大学图书馆:Libreria universitaria
2019/07/16 全球购物
运动会跳远广播稿
2014/02/04 职场文书
jquery插件实现搜索历史
2021/04/24 jQuery
你知道哪几种MYSQL的连接查询
2021/06/03 MySQL
vue项目支付功能代码详解
2022/02/18 Vue.js