两年前写的一个简单的jQuery插件开发实例,还是可以看看的:

<script type="text/javascript" src="jquery-1.7.2.min.js"></script>
<script type="text/javascript">
(function($){
// 为指定节点添加遮盖效果
var methods = {
Documents : {},
Options : {},
Show : function(){
// 配置参数
var defaults = {
zIndex : 9990, // 层高
opacity : 0.7, // 透明度
bgColor : "#000", // 背景色
bgImg : "", // 背景图
fixSpace : [0,0,0,0], // 补偿四边的像素 顺序:上右下左
callback : $.noop // 显示输出后的回调函数, 第一个参数为当前 cover 的 jQuery 对象 function(cover){}
};
var settings = $.extend({}, defaults, this.Options); var getFixSpace = function(index){
if (typeof settings.fixSpace === "number") return settings.fixSpace;
return settings.fixSpace[index] ? settings.fixSpace[index] : 0;
} this.Documents.each(function(){
var $this = $(this);
var cover = $this.find(".my-ui-cover-wrapper");
if (cover.size() < 1) {
cover = $('<div class="my-ui-cover-wrapper"><div class="my-ui-cover"></div></div>'); // 设置渲染样式并输出到页面
cover.css({ position:"relative", margin:0, padding:0, float:"none", fontSize:0, lineHeight:0 }).prependTo($this)
.find(".my-ui-cover")
.css({ position:"absolute", zIndex:settings.zIndex, backgroundColor:settings.bgColor, backgroundImage:"url("+ settings.bgImg +")" })
.fadeTo(0, settings.opacity);
} // 显示输出后的回调函数
if (typeof settings.callback === "function") settings.callback(cover); // 动态适应窗口大小
var setPosition = function(){
var top = $this.css("paddingTop").replace("px", "")*-1 + getFixSpace(0);
var left = $this.css("paddingLeft").replace("px", "")*-1 + getFixSpace(3);
var width = $this.width() + left*-1 + $this.css("paddingRight").replace("px", "")*1 + getFixSpace(1);
var height = $this.height() + top*-1 + $this.css("paddingTop").replace("px", "")*1 + getFixSpace(2);
cover.find(".my-ui-cover").css({ top:top, left:left, width:width, height:height });
};
$(window).resize(setPosition); setPosition();
}); return this.Documents;
}, // 移除指定节点下的全部遮盖效果
Remove : function(callback){
this.Documents.find(".my-ui-cover-wrapper").fadeOut(function(){
$(this).remove();
typeof callback === "function" ? callback() : "";
});
}
} // 遮盖插件
$.fn.Cover = function(options){
methods.Documents = this;
methods.Options = options;
return methods;
};
})(jQuery); $(function(){
$("body").Cover({
bgImg : "http://yuyan.ai9475.com/front/templates/yuyan/styles/style2/image/line_bg.png",
callback : function(cover){
cover.click(function(){ $(this).fadeOut() });
}
})
.Show();
setTimeout(function(){
$("body").Cover().Remove(function(){ alert("yes"); });
}, 1000);
});
</script>

可以对任何一个或多个容器进行遮盖,还未进行完整测试可能存在一些小问题

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

原文发表于:2012/08/03 23:07

一个简单的jQuery插件开发实例的更多相关文章

  1. 【转】简单的jQuery插件开发方法

    在实际开发工作中,总会碰到像滚动,分页,日历等展示效果的业务需求,对于接触过jQuery以及熟悉jQuery使用的人来说,首先想到的肯定是寻找现有的jQuery插件来满足相应的展示需求.目前页面中常用 ...

  2. 编写一个简单的Jquery插件

    1.实现内容 定义一个简单的jquery插件,alert传递进来的参数 2.插件js文件(jquery.showplugin.js) (function ($) { //定义插件中的方法 var me ...

  3. 一个简单的Android小实例

    原文:一个简单的Android小实例 一.配置环境 1.下载intellij idea15 2.安装Android SDK,通过Android SDK管理器安装或卸载Android平台   3.安装J ...

  4. [WCF REST] 一个简单的REST服务实例

    Get:http://www.cnblogs.com/artech/archive/2012/02/04/wcf-rest-sample.html [01] 一个简单的REST服务实例 [02] We ...

  5. PureMVC和Unity3D的UGUI制作一个简单的员工管理系统实例

    前言: 1.关于PureMVC: MVC框架在很多项目当中拥有广泛的应用,很多时候做项目前人开坑开了一半就消失了,后人为了填补各种的坑就遭殃的不得了.嘛,程序猿大家都不喜欢像文案策划一样组织文字写东西 ...

  6. 一个简单的window.onscroll实例

    鉴于better-scroll实现这个效果很复杂,想用最原生的效果来实现吸顶效果 一个简单的window.onscroll实例,可以应用于移动端 demo 一个简单的window.onscroll实例 ...

  7. layer —— 一个简单的jQuery弹出层插件

    layer的使用 4.24更新:注意:layer现在有旧版1.8.5版本和新版本3.0版本的,对应引入的JQ也要不同,相对应的JQ引入1.1和3.1,否则JQ会出问题 4.21更新: 解答4-19的问 ...

  8. 实现一个简单的"jQuery"

    本次博客记录一个简单的"jQuey"的实现方式,来加深对jQuery的理解: 代码: <!DOCTYPE html> <html> <head> ...

  9. Web开发之tomcat配置及使用(环境变量设置及测试,一个简单的web应用实例)

    Tomcat的配置及测试: 第一步:下载tomcat,然后解压到任意盘符 第二步:配置系统环境变量 tomcat解压到的D盘 (路径为: D:\tomcat), 配置环境变量: 启动tomcat需要两 ...

随机推荐

  1. ionic2环境搭建与hello word

    一.环境搭建 需要安装配置以下组件,具体参考:Cordova环境搭建, 我的版本信息如下: 这里要特别注意,node版本,ionic2需要 大于v6 ,而不是0.xx版本,否则会不支持报错. 二.设置 ...

  2. 如何把微信语音汇总成一个MP3文件?

    有的时候想要保存微信中的语音内容,但是苦于语音短且多,因此想要把它汇总成一个音频文件. 本篇以苹果手机为例,安卓手机也可类似. 第一步,安装同步助手 同步助手是一款在电脑上安装,可以保存手机上的内容的 ...

  3. Java 设计模式(二)-六大原则

    Java 设计模式(二)-六大原则 单一职责原则(Single Responsibility Principle) 定义: 不要存在多余一个原因导致类变更,既一个类只负责一项职责. 问题由来: 当类A ...

  4. js如何判断是否在iframe中

    JS代码://方式一 if (self.frameElement && self.frameElement.tagName == "IFRAME") { alert ...

  5. 五、RDD持久化

    Spark最重要的一个功能是它可以通过各种操作(operations)持久化(或者缓存)一个集合到内存中.当你持久化一个RDD的时候,每一个节点都将参与计算的所有分区数据存储到内存中,并且这些数据可以 ...

  6. sequekize

    关于sequelize的准备工作这里不再赘述. 一.引入sequelize模块 var Sequelize = require('sequelize'); 二.连接数据库 var sequelize  ...

  7. minSdkVersion与targetSdkVersion

    targetSdkVersion是Android提供向前兼容的主要依据,在应用的targetSdkVersion没有更新之前,系统不会应用最新的行为变化 比如设置了app的targetSdkVersi ...

  8. linux环境下搭建环境发布web项目

    在公司真是学习了一下项目环境在linux下搭建和发布的过程,这是每个程序员都应该掌握的一个技能,将整理下为以后温习用,也乐于和为掌握这些技能的猿分享: 这里主要分为5部分:1.安装jdk,并配置环境变 ...

  9. C++四种cast操作符

    C 风格(C-style)强制转型如下: (T) expression  或 T(expression) //函数风格(Function-style) 两种形式之间没有本质上的不同. 对于具有转换的简 ...

  10. CSU 1803 2016

    湖南省第十二届大学生计算机程序设计竞赛$A$题 枚举. 处理一下$\% 2016$之后的数分别有几个,然后$2016*2016$枚举一下统计方案数就可以了. #pragma comment(linke ...