关于jquery插件模板的两个案例
/** * jquery tips 提示插件 jquery.tips.js v0.1beta * * 使用方法 * $(selector).tips({ //selector 为jquery选择器 * msg:'your messages!', //你的提示消息 必填 * side:1, //提示窗显示位置 1,2,3,4 分别代表 上右下左 默认为1(上) 可选 * color:'#FFF', //提示文字色 默认为白色 可选 * bg:'#F00',//提示窗背景色 默认为红色 可选 * time:2,//自动关闭时间 默认2秒 设置0则不自动关闭 可选 * x:0,//横向偏移 正数向右偏移 负数向左偏移 默认为0 可选 * y:0,//纵向偏移 正数向下偏移 负数向上偏移 默认为0 可选 * }) *$("#dname").tips({ side:3, msg:'输入属性名', bg:'#AE81FF', time:2 }); * */ (function ($) { $.fn.tips = function(options){ var defaults = { side:1, msg:'', color:'#FFF', bg:'#F00', time:2, x:0, y:0 } var options = $.extend(defaults, options); if (!options.msg||isNaN(options.side)) { throw new Error('params error'); } if(!$('#jquery_tips_style').length){ var style='<style id="jquery_tips_style" type="text/css">'; style+='.jq_tips_box{padding:10px;position:absolute;overflow:hidden;display:inline;display:none;z-index:10176523;}'; style+='.jq_tips_arrow{display:block;width:0px;height:0px;position:absolute;}'; style+='.jq_tips_top{border-left:10px solid transparent;left:20px;bottom:0px;}'; style+='.jq_tips_left{border-top:10px solid transparent;right:0px;top:18px;}'; style+='.jq_tips_bottom{border-left:10px solid transparent;left:20px;top:0px;}'; style+='.jq_tips_right{border-top:10px solid transparent;left:0px;top:18px;}'; style+='.jq_tips_info{word-wrap: break-word;word-break:normal;border-radius:4px;padding:5px 8px;max-width:130px;overflow:hidden;box-shadow:1px 1px 1px #999;font-size:12px;cursor:pointer;}'; style+='</style>'; $(document.body).append(style); } this.each(function(){ var element=$(this); var element_top=element.offset().top,element_left=element.offset().left,element_height=element.outerHeight(),element_width=element.outerWidth(); options.side=options.side<1?1:options.side>4?4:Math.round(options.side); var sideName=options.side==1?'top':options.side==2?'right':options.side==3?'bottom':options.side==4?'left':'top'; var tips=$('<div class="jq_tips_box"><i class="jq_tips_arrow jq_tips_'+sideName+'"></i><div class="jq_tips_info">'+options.msg+'</div></div>').appendTo(document.body); tips.find('.jq_tips_arrow').css('border-'+sideName,'10px solid '+options.bg); tips.find('.jq_tips_info').css({ color:options.color, backgroundColor:options.bg }); switch(options.side){ case 1: tips.css({ top:element_top-tips.outerHeight()+options.x, left:element_left-10+options.y }); break; case 2: tips.css({ top:element_top-20+options.x, left:element_left+element_width+options.y }); break; case 3: tips.css({ top:element_top+element_height+options.x, left:element_left-10+options.y }); break; case 4: tips.css({ top:element_top-20+options.x, left:element_left-tips.outerWidth()+options.y }); break; default: } var closeTime; tips.fadeIn('fast').click(function(){ clearTimeout(closeTime); tips.fadeOut('fast',function(){ tips.remove(); }) }) if(options.time){ closeTime=setTimeout(function(){ tips.click(); },options.time*1000); tips.hover(function(){ clearTimeout(closeTime); },function(){ closeTime=setTimeout(function(){ tips.click(); },options.time*1000); }) } }); return this; }; })(jQuery);
案例二:
(function($){ $.fn.shadow = function(opts){ //定义的默认的参数 var defaults = { copies: 5, opacity:0.1, //回调函数 copyOffset:function(index){ return{x:index,y:index}; } }; //将opts的内容合并到default中。 var options = $.extend(defaults,opts); return this.each(function(){ var $originalElement = $(this); //设置参数对象 for(var i=0;i<options.copies;i++) { var offset = options.copyOffset(i); $originalElement .clone() .css({ position:'absolute', left:$originalElement.offset().left + offset.x, top:$originalElement.offset().top + offset.y, margin:0, zIndex:-1, //设置参数对象 opacity:options.opacity }) .appendTo('body'); } }); }; })(jQuery); $(document).ready(function(){ $('h1').shadow({ copies:5, copyOffset:function(index){ return {x:-index,y:-2 * index}; } }); });
关于jquery插件模板的两个案例的更多相关文章
- jQuery插件主要有两种扩展方式
jQuery插件主要有两种扩展方式: 扩展全局函数方式. 扩展对象方法方式. 扩展全局函数方式 扩展全局函数方式定义的插件,即类级别插件,可以通过jQuery.extend()来进行定义.定义格式为: ...
- jQuery 插件模板
1.为每一个DOM对象创建一个插件对象 模板定义: (function($) { $.pluginName = function(element, options) { var defaults = ...
- 我最喜欢的jQuery插件模板
我使用jQuery已经有相当长的时间了,并且我会常常为它写一些插件(plugin).我尝试过用不同的方式去写,现在这个模板是我最喜欢的: 1 2 3 4 5 6 7 8 9 10 11 12 13 1 ...
- JQuery插件模板
(function($){ $.fn.插件名 = function(settings){ var defaultSettings = { } /* 合并默认参数和用户自定义参数 */settings ...
- 简记 jQuery 插件模板
/** * @lisence jquery plugin demo v1.0.0 * * author: Jeremy Yu * * description: * this is a jquery p ...
- jQuery插件编写及链式编程模型小结
JQuery极大的提高了我们编写JavaScript的效率,让我们可以愉快的编写代码,做出各种特效.大多数情况下,我们都是使用别人开发的JQuery插件,今天我们就来看看如何把我们常用的功能做出JQu ...
- 2013年优秀jQuery插件
今天为大家推荐的是2013年的第一期,在这期里面十个jQuery插件涵盖了响应式的网格布局插件.图片放大插件.表单元素中自定义select插件,google 地图插件.文件拖放上传插件.tooltip ...
- jQuery插件编写及链式编程模型
jQuery插件编写及链式编程模型小结 JQuery极大的提高了我们编写JavaScript的效率,让我们可以愉快的编写代码,做出各种特效.大多数情况下,我们都是使用别人开发的JQuery插件,今天我 ...
- 【最新】2015年7月之15个最新jQuery插件
Hello,一个激动人心的好消息,现在我为大家整理最近7月发布的jQuery插件. 如果你熟悉任何下面列出的插件,请分享你的反馈与我们的读者,或如果你知道哪一个我们没有收录,那么请与我们分享在下面的评 ...
随机推荐
- CentOS上安装GitBlit服务
简单介绍 在上一篇文章中,已经简单的介绍了如何在CentOS的服务器上搭建git服务器.但是这种方式实现的服务器功能比较弱,操作起来也比较繁琐.在网上搜索了一圈,感觉Gitblit比较符合我的需求.接 ...
- fatal error C1083:无法打开包括文件:“stdint.h”: No such file or directory解决方案
stdint.h文件是C99的标准头文件,默认情况下VC是不支持的,所以在使用过程中肯定会碰到 "No such file or directory"的问题. 解决办法 1.从网盘 ...
- 记录一次CentOS环境升级Python2.6到Python2.7并安装最新版pip
背景介绍 一次实验中需要安装python-etcd包.安装这个包时要求的python和pip版本比目前系统的版本高. 系统是centos6.6 64位 1 2 3 4 5 6 7 [root@m ...
- 捋一捋js面向对象的继承问题
说到面向对象这个破玩意,曾经一度我都处于很懵逼的状态,那么面向对象究竟是什么呢?其实说白了,所谓面向对象,就是基于类这个概念,来实现封装.继承和多态的一种编程思想罢了.今天我们就来说一下这其中继承的问 ...
- 通过修改注册表设置windows环境变量
开发环境搭建每次都要设置很多环境变量, 一般是通过 [菜单]->[计算机]->[属性]->[高级设置]->[环境变量]进行设置,重装系统后,每次都要设置很多环境变量,很麻烦. ...
- Linux socket 类封装 (面向对象方法)
/* * socketfactory.h * * Created on: 2014-7-19 * Author: root */ #ifndef SOCKETFACTORY_H_ #define SO ...
- chrome浏览器下JavaScript实现clipboard时无法访问剪切板解决方案
在用JavaScript实现某个简单的复制到剪切板功能的时候,会考虑一下浏览器兼容性,主要是重点在IE和FireFox,把这个两个浏览器搞定后,基本上其他浏览器也不用太操心了,Chrome也一样,没出 ...
- php 快排
<?php $arr =array(3,1,5,67,8,7,9,9); function qsort(&$arr,$head,$tail){ if($head>=$tail){ ...
- Java--JDBC连接与Django--DATABASES设置
JDBC 简介 JDBC(Java Data Base Connectivity,java 数据库连接)是一种用于执行 SQL 语句的 JavaAPI,可以为多种关系 数据库提供统一访问,它由一组用 ...
- 如何使用 OpenCV 打开摄像头获取图像数据?
OpenCV 如何打开摄像头获取图像数据? 代码运行环境:Qt 5.9.1 msvc2015 32bit OpenCV 3.3.0 #include "include/opencv2/ope ...