jquery tools系列 expose 学习


Posted in Javascript onSeptember 06, 2009

如overlay的学习,首先给出操作的html目标代码:

<div id="test"> 
    expose test! 
</div> <div style="margin:0 auto;width:300px"> 
    <img src="http://flowplayer.org/tools/img/expose/ball_large.png" id="ball" style="width:130px" /> 
</div> 
<div style="position:relative;z-index:10000"> 
<button type="button" id="btn_open">open div</button> 
<button type="button" id="btn_close">close div</button> 
</div>

该功能是通过jqueryObject.expose()方法来实现的,其具体实现方式如下:
$("jquery selector").expose({config object}) //该方法通过配置对象将来定制expose的显示。
以下代码为配置参数说明描述:
属性 默认值 详细描述
color '#456' 设置页面中非expose(突出显示)区域在expose(突出显示)效果显示时的背景颜色。如果此处未设置背景色,那么expose功能会提供一个默认的颜色。另外属性亦可通过maskId的CSS样式来设置。
opacity 0.8 设置页面中非expose(突出显示)区域在expose(突出显示)效果显示时的背景透明度。该处透明度的取值范围为[0,1],该处值越大,透明度越低。
loadSpeed 'slow' 设置页面中非expose(突出显示)区域在expose(突出显示)效果触发时的显示速度。该处值可设置为:'slow','normal','fast'和毫秒数值。例如:如果此处设置值为2000,那么非expose(突出显示)区域效果将会在2秒钟中内显示完成。如果此处设置值为0,那么非expose(突出显示)区域将会没有动画效果并立即显示出来。
closeSpeed 'fast' 设置页面中非expose(突出显示)区域在expose(突出显示)效果关闭时的关闭速度。该处值可设置为:'slow','normal','fast'和毫秒数值。具体示例可参见本文相关示例。
   
maskId 'exposeMask' 非expose(突出显示)区域对应的页面div元素id,它是一个普通的div元素,当expose(突出显示)被触发后,他会自动调整以完全的覆盖整个页面。非expose(突出显示)区域的显示效果可以通过设置该处div的样式来改变。如果此处没有设置,那么该插件会默认提供一个id为exposeMask的div来实现非expose区域。
closeOnClick TRUE 该属性用于设置非expose区域被点击时,是否关闭expose(突出显示)效果。该属性默认值为true,及非expose区域被点击后,expose效果被关闭。
closeOnEsc TRUE 该属性用于设置Esc键被按下后,是否关闭expose(突出显示)效果。该属性默认值为true,及Esc键被按下后,expose效果被关闭。
zIndex 9998 设置页面设置页面中非expose(突出显示)区域的z-index(CSS)属性。一般情况下,默认的zIndex属性值都非常大,所以这里不需要设置,但是,有一点需要注意的是,该非expose(突出显示)的z-index属性值一定要大于页面中任何一个元素的z-index属性。
api FALSE 该属性解释可参见本系列中tabs,scollable等功能同属性的解释。
   
onBeforeLoad   expose(突出显示)效果触发前调用函数。如果该函数返回false,那么expose(突出效果)将会被阻止实现。
onLoad   expose(突出显示)效果实现后,该函数被触发。
onBeforeClose   expose(突出显示)效果关闭前调用函数。如果该函数返回false,那么expose(突出效果)将会被阻止关闭。
onClose   expose(突出显示)效果关闭后,该函数被触发。
此外,expose还提供了一系列获取expose对象的方法,这些方法的说明描述如下:
方法 返回值 详细描述
load() API 触发expose(突出显示)效果,该方法只有expose(突出显示)被初始化后才能调用成功。
close() API 关闭expose(突出显示)效果。
isLoaded() boolean 判断当前expose(突出显示)是否已被触发。
getMask() jQuery 返回非expose(突出显示)的jquery对象。可以通过jquery的相关方法来改变非expose(突出显示)区域的显示效果。
getExposed() jQuery 返回expose(突出显示)的jquery对象。
getConf() Object 返回expose(突出显示)的配置对象。
   
onBeforeLoad(fn) API 同配置文件中onBeforeLoad属性。
onLoad(fn) API 同配置文件中onLoad属性。
onBeforeClose(fn) API 同配置文件中onBeforeClose属性。
onClose(fn) API 同配置文件中onClose属性。
对于expose配置对象属性设置及方法调用的具体使用方法如下:
var testApi=$("#test").expose({ 
            color:'#44f', 
            opacity:0.5, 
            loadSpeed:2000, 
            closeSpeed:3000, 
            closeOnClick:false, 
            closeOnEsc:false, 
            api: true, 
            lazy:true, 
            onBeforeLoad:function(){ 
                alert("before load!"); 
            }, 
            onLoad:function(){ 
                alert("onLoad!"); 
            }, 
            onBeforeClose:function(){ 
                alert("mask-background:"+this.getMask().css("color")+",exposeId:"+this.getExposed().attr("id") 
                                    +"\n expose color:"+this.getConf().color); 
                //alert("Before close!"); 
            }, 
            onClose:function(){ 
                alert("Close!"); 
            }         }); 
         
    $("#test").click(function() { 
        testApi.load(); 
    }); 
    $("#btn_open").click(function(){ 
        testApi.load(); 
    }); 
    $("#btn_close").click(function(){ 
        testApi.close(); 
    }); 
    alert("test is load:"+testApi.isLoaded()); 
    $("#ball").expose({ 
        //此处通过maskId中样式的backgroundcolor来设置color属性 
        maskId:'mask', 
        opacity:0.5, 
        closeSpeed:'slow', 
        onBeforeLoad:function(){ 
            this.getExposed().animate({width:298}); 
        }, 
        onBeforeClose:function(){ 
            this.getExposed().animate({width:130});     
        } 
        }).click(function(){ 
        $(this).expose().load(); 
    });

最后,给出完整示例代码及该功能得部分demo图片:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <script src="http://flowplayer.org/tools/js/tools/1.0.2/jquery.tools.min.js" ></script> 
<style><!-- 
#test { 
    border:1px solid #ccc; 
    background-color:#fff; 
    padding:50px; 
    font-size:30px; 
    margin:20px auto; 
    text-align:center; 
    width:600px; 
} 
#mask { 
background:#072a88 url(http://flowplayer.org/tools/img/expose/mask_star_1600px.jpg) no-repeat scroll 50% -274px; 
} 
--></style><style >#test { 
    border:1px solid #ccc; 
    background-color:#fff; 
    padding:50px; 
    font-size:30px; 
    margin:20px auto; 
    text-align:center; 
    width:600px; 
} 
#mask { 
background:#072a88 url(http://flowplayer.org/tools/img/expose/mask_star_1600px.jpg) no-repeat scroll 50% -274px; 
}</style> 
<div id="test"> 
    expose test! 
</div> 
<div style="margin:0 auto;width:300px"> 
    <img src="http://flowplayer.org/tools/img/expose/ball_large.png" id="ball" style="width:130px" /> 
</div> 
<div style="position:relative;z-index:10000" > 
<button type="button" id="btn_open">open div</button> 
<button type="button" id="btn_close">close div</button> 
</div> 
<script type="text/javascript"><!-- 
$(function(){ 
    var testApi=$("#test").expose({ 
            color:'#44f', 
            opacity:0.5, 
            loadSpeed:2000, 
            closeSpeed:3000, 
            closeOnClick:false, 
            closeOnEsc:false, 
            api: true, 
            lazy:true, 
            onBeforeLoad:function(){ 
                alert("before load!"); 
            }, 
            onLoad:function(){ 
                alert("onLoad!"); 
            }, 
            onBeforeClose:function(){ 
                alert("mask-background:"+this.getMask().css("color")+",exposeId:"+this.getExposed().attr("id") 
                                    +"\n expose color:"+this.getConf().color); 
                //alert("Before close!"); 
            }, 
            onClose:function(){ 
                alert("Close!"); 
            } 
        }); 
         
    $("#test").click(function() { 
        testApi.load(); 
    }); 
    $("#btn_open").click(function(){ 
        testApi.load(); 
    }); 
    $("#btn_close").click(function(){ 
        testApi.close(); 
    }); 
    alert("test is load:"+testApi.isLoaded()); 
    $("#ball").expose({ 
        //此处通过maskId中样式的backgroundcolor来设置color属性 
        maskId:'mask', 
        opacity:0.5, 
        closeSpeed:'slow', 
        onBeforeLoad:function(){ 
            this.getExposed().animate({width:298}); 
        }, 
        onBeforeClose:function(){ 
            this.getExposed().animate({width:130});     
        } 
        }).click(function(){ 
        $(this).expose().load(); 
    }); 
}); 
// --></script>
Javascript 相关文章推荐
javascript动态改变img的src属性图片不显示的解决方法
Oct 20 Javascript
javascript版2048小游戏
Mar 18 Javascript
js实现固定显示区域内自动缩放图片的方法
Jul 18 Javascript
jQuery Ajax页面局部加载方法汇总
Jun 02 Javascript
基于angularjs实现图片放大镜效果
Aug 31 Javascript
JavaScript设计模式之策略模式详解
Jun 09 Javascript
AngularJS日程表案例详解
Aug 15 Javascript
React+Webpack快速上手指南(小结)
Aug 15 Javascript
javascript 原型与原型链的理解及应用实例分析
Feb 10 Javascript
vue中keep-alive内置组件缓存的实例代码
Apr 16 Javascript
通过JS判断网页是否为手机打开
Oct 28 Javascript
Vue + iView实现Excel上传功能的完整代码
Jun 22 Vue.js
jquery tools 系列 scrollable(2)
Sep 06 #Javascript
jquery tools 系列 scrollable学习
Sep 06 #Javascript
javascript事件问题
Sep 05 #Javascript
js跨域和ajax 跨域问题的实现思路
Sep 05 #Javascript
JavaScript 密码强度判断代码
Sep 05 #Javascript
关于javascript中的parseInt使用技巧
Sep 03 #Javascript
jquery判断单个复选框是否被选中的代码
Sep 03 #Javascript
You might like
详解PHP数组赋值方法
2015/11/07 PHP
php使用PDO事务配合表格读取大量数据插入操作实现方法
2017/02/16 PHP
ThinkPHP3.2.3框架邮件发送功能图文实例详解
2019/04/23 PHP
PHP内存溢出优化代码详解
2021/02/26 PHP
Mootools 1.2教程 输入过滤第一部分(数字)
2009/09/15 Javascript
跟我学Nodejs(二)--- Node.js事件模块
2014/05/21 NodeJs
JavaScript操作Cookie详解
2015/02/28 Javascript
将页面table内容与样式另存成excel文件的方法
2015/08/05 Javascript
jQuery toggle 代替方法
2016/03/22 Javascript
详解mpvue开发小程序小总结
2018/07/25 Javascript
layer插件select选中默认值的方法
2018/08/14 Javascript
解决vue移动端适配问题
2018/12/12 Javascript
qrcode生成二维码微信长按无法识别问题的解决
2019/04/04 Javascript
如何基于filter实现网站整体变灰功能
2020/04/17 Javascript
[02:17]DOTA2亚洲邀请赛 RAVE战队出场宣传片
2015/02/07 DOTA
Python文件操作类操作实例详解
2014/07/11 Python
python Django框架实现自定义表单提交
2016/03/25 Python
最大K个数问题的Python版解法总结
2016/06/16 Python
Python执行时间的计算方法小结
2017/03/17 Python
Django Sitemap 站点地图的实现方法
2019/04/29 Python
python实现信号时域统计特征提取代码
2020/02/26 Python
python 读取串口数据的示例
2020/11/09 Python
python 制作网站小说下载器
2021/02/20 Python
AC Lens:购买隐形眼镜
2017/02/26 全球购物
马来西亚与新加坡长途巴士售票网站:BusOnlineTicket.com
2018/11/05 全球购物
手工制作的意大利礼服鞋:Ace Marks
2018/12/15 全球购物
学期自我鉴定范文
2013/10/01 职场文书
自动一体化专业求职信
2014/03/15 职场文书
2014年勤工助学工作总结
2014/11/24 职场文书
入伍通知书
2015/04/23 职场文书
党委工作总结2015
2015/04/27 职场文书
关于法制教育的宣传语
2015/07/13 职场文书
运动会广播稿100字
2015/08/19 职场文书
十二月早安励志心语大全
2019/12/03 职场文书
java中用float时,数字后面加f,这样是为什么你知道吗
2021/09/04 Java/Android
html解决浏览器记住密码输入框的问题
2023/05/07 HTML / CSS