一个简单的jQuery插件开发实例
两年前写的一个简单的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插件开发实例的更多相关文章
- 【转】简单的jQuery插件开发方法
在实际开发工作中,总会碰到像滚动,分页,日历等展示效果的业务需求,对于接触过jQuery以及熟悉jQuery使用的人来说,首先想到的肯定是寻找现有的jQuery插件来满足相应的展示需求.目前页面中常用 ...
- 编写一个简单的Jquery插件
1.实现内容 定义一个简单的jquery插件,alert传递进来的参数 2.插件js文件(jquery.showplugin.js) (function ($) { //定义插件中的方法 var me ...
- 一个简单的Android小实例
原文:一个简单的Android小实例 一.配置环境 1.下载intellij idea15 2.安装Android SDK,通过Android SDK管理器安装或卸载Android平台 3.安装J ...
- [WCF REST] 一个简单的REST服务实例
Get:http://www.cnblogs.com/artech/archive/2012/02/04/wcf-rest-sample.html [01] 一个简单的REST服务实例 [02] We ...
- PureMVC和Unity3D的UGUI制作一个简单的员工管理系统实例
前言: 1.关于PureMVC: MVC框架在很多项目当中拥有广泛的应用,很多时候做项目前人开坑开了一半就消失了,后人为了填补各种的坑就遭殃的不得了.嘛,程序猿大家都不喜欢像文案策划一样组织文字写东西 ...
- 一个简单的window.onscroll实例
鉴于better-scroll实现这个效果很复杂,想用最原生的效果来实现吸顶效果 一个简单的window.onscroll实例,可以应用于移动端 demo 一个简单的window.onscroll实例 ...
- layer —— 一个简单的jQuery弹出层插件
layer的使用 4.24更新:注意:layer现在有旧版1.8.5版本和新版本3.0版本的,对应引入的JQ也要不同,相对应的JQ引入1.1和3.1,否则JQ会出问题 4.21更新: 解答4-19的问 ...
- 实现一个简单的"jQuery"
本次博客记录一个简单的"jQuey"的实现方式,来加深对jQuery的理解: 代码: <!DOCTYPE html> <html> <head> ...
- Web开发之tomcat配置及使用(环境变量设置及测试,一个简单的web应用实例)
Tomcat的配置及测试: 第一步:下载tomcat,然后解压到任意盘符 第二步:配置系统环境变量 tomcat解压到的D盘 (路径为: D:\tomcat), 配置环境变量: 启动tomcat需要两 ...
随机推荐
- [ios2] 获取mac地址 等唯一标识
- (NSString *) macaddress{ int mib[6]; size_t len; char ...
- CSS预处理器的对比 — Sass、Less和Stylus
本文根据Johnathan Croom的<sass vs. less vs. stylus: Preprocessor Shootout>所译,整个译文带有我们自己的理解与思想,如果译得不 ...
- Kattis - Peragrams
Peragrams Photo by Ross Beresford Per recently learned about palindromes. Now he wants to tell us ab ...
- trove datastore 浅析
以下代码来自trove/datastore该目录下一共有4个文件__init__,views,models,service大概关系(主要是wsgi吧,没仔细学过,简单的从代码上做推测),service ...
- MATLAB中的多项式运算
作者:长沙理工大学 交通运输工程学院 王航臣 1.多项式求根 在MATLAB中求取多项式的根用roots函数. 函数:roots 功能:一元高次方程求解. 语法:roots(c) 说明:返回一个列向量 ...
- visual studio 中将选中代码相同的代码的颜色设置,修改高亮颜色
这是一个很实用的功能,默认的设置里不是很明显,设置完之后效果图如下: 具体设置方法是: 1. 菜单:工具 -> 选项 ->环境 ->字体和颜色 2. 在右边的 "显示 ...
- android studio 导入外部库文件,以及将项目中module变成library引用依赖
一:导入如百度地图等的外部类. 步骤:1.首先 将androidstudio项目显示切换到 project 状态显示项目 2.然后添加.jar文件,将所有的.jar文件放入libs文件夹内(libs文 ...
- 对于行高(line-height)的一些理解
刚一开始学习这个特性的时候,总是出一些当时看起来很奇怪的问题.现在决定重新整理一下.毕竟使用css,十行揉在一起凑出效果是一种使用,知道为什么会有这种效果也是一种使用.我们需要做一些测试,所以首先需要 ...
- java基础3
包装类:
- web字体图标的使用
今天给大家介绍一些web字体图标的下载和使用 一.WEB字体 1. 下载外部的字体图标的网站 font-awesome.com 2.CSS文件和font文件 3.html文档中使用外部字体 4.下载字 ...