一个简单的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需要两 ...
随机推荐
- JSON反序列化实体类
1.定义实体类 [DataContract] public class CustomerWordOrderViewModel { [DataMember] public string Name; [D ...
- The Linux Mint 18.1:Eclipse Run The C++ And Python ConfigorationWhen You achieve above step,you can run the c++ and python! (Next OTL ,PYOTL is Project That Write By Ruimin Shen(ability man) )
# Copyright (c) 2016, 付刘伟 (Liuwei Fu)# All rights reserved.# 转载请注明出处 1.Install The Eclipse,g++ Use T ...
- Python高手之路【九】python基础之迭代器与生成器
迭代器与生成器 1.迭代器 迭代器是访问集合元素的一种方式.迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束.迭代器只能往前不会后退,不过这也没什么,因为人们很少在迭代途中往后退.另外 ...
- 转载:jsp九大内置对象和四大作用域
摘要: JSP的九大内置对象: page,application,session,request,response,out,exception,config,pageContext. JSP的四个作用 ...
- 安装Genymotion与集成eclipse,最后有集成android studio
本安装过程从不用到VPN 一切国内网络都可以解决. 首先下载Genymotion,网址 https://www.genymotion.com/account/login/ 首先需要注册,我使用163 ...
- hdu1031
#include <cstdio> #include <cstdlib> struct element{ int id; double sa; }e[10000]; int c ...
- 【hihoCoder 1466】后缀自动机六·重复旋律9
http://hihocoder.com/problemset/problem/1466 建出A串和B串的两个后缀自动机 对后缀自动机的每个状态求出sg值. 求出B串的\(sum(x)\),表示B有多 ...
- RTMP直播应用与延时分析
直播应用中,RTMP和HLS基本上可以覆盖所有客户端观看,HLS主要是延时比较大,RTMP主要优势在于延时低. 一.应用场景 低延时应用场景包括: . 互动式直播:譬如2013年大行其道的美女主播 ...
- dplyr 数据操作 常用函数(4)
接下来我们继续了解一些dplyr中的常用函数. 1.ranking 以下各个函数可以实现对数据进行不同的排序 row_number(x) ntile(x, n) min_rank(x) dense_r ...
- 一步步优化JVM一:概述、方法及需求
现代JVM是一个具有灵活适应各种应用能力的软件,尽管很多应用能够在JVM的默认配置下运行良好,但是有些应用还是需要优化JVM配置以达到其性能要求.由于各种各样的应用能够运行在现在JVM上面,所以大量的 ...