码迷,mamicode.com
首页 > Web开发 > 详细

jQuery扩展功能

时间:2016-08-05 13:47:16      阅读:194      评论:0      收藏:0      [点我收藏+]

标签:

源码如下:

/*!
* 说明:Jquery库扩展
* 创建时间: leo 2016-8-4 
* 更新时间:2016-8-5
*/ (function (window, jQuery, undefined) { jQuery.extend({ /*日期时间处理*/ // data参数的格式为日期格式 date: { // 添加/减去月份 num为正就是加 为负就是减 countMonth: function(date, num){ var oDate, oMonth, oDay; oDate = new Date(date); oDay = oDate.getDate(); oDate.setDate(1); oDate.setMonth(oDate.getMonth() + num); oMonth = oDate.getMonth() + 1; oDay = $.date.getLastDay(oDate.getFullYear(), oDate.getMonth() + 1); return oDate.getFullYear() + ‘-‘ + (oMonth < 10 ? ‘0‘ : ‘‘) + oMonth + ‘-‘ + (oDay < 10 ? ‘0‘ : ‘‘) + oDay; }, // 获取最后一天 getLastDay: function(year, month){ var oDt; oDt = new Date(year, month - 1, ‘01‘); oDt.setDate(1); oDt.setMonth(oDt.getMonth() + 1); return new Date(oDt.getTime() - 1000*60*60*24).getDate(); }, // 计算 date1 - date2 得到相差天数 countDay: function (date1, date2) { return parseInt(Math.abs(new Date(date1) - new Date(date2)) / 86400000); //把相差的毫秒数转换为天数 }, }, /*操作*/ action: { // 指定 setTimeout 执行的次数 默认时间1秒 次数5次 setTimeoutWidthNum: function (fun, time = 1000, num = 5) { if (fun != null) { setTimeout(function () { fun(); num --; if (num > 0) $.action.setTimeoutWidthNum(fun, time, num); }, time); } }, }, //定位 position: { //使页面元素居中 isTure1代表是否左右居中 isTure2代表是否垂直居中 默认上下垂直居中 center: function (el, isTure1 = true, isTure2 = true) { var obj = $(el); if (obj.length > 0) { obj.each(function () { var _this, oW, oH; _this = $(this); oW = _this.width(); oH = _this.height(); _this.css(‘position‘, ‘absolute‘); if (isTure1) _this.css({ left: ‘50%‘, marginLeft: - oW / 2 }); if (isTure2) _this.css({ top: ‘50%‘, marginTop: - oH / 2 }); }) } } }, /*浏览器*/ browser: { // 设置名称为name 值为value的Cookie value为空就移除Cookie 保存时间默认3天 setCookie: function (name, value, time = 3 * 24 * 60 * 60 * 1000) { if (value == ‘‘) time = 0; var expdate = new Date(); //初始化时间 expdate.setTime(expdate.getTime() + time); //时间 document.cookie = name + "=" + value + ";expires=" + expdate.toGMTString() + ";path=/"; }, // 获取cookie的value getCookie: function (cookieName) { var cookieValue, cookieStartAt, cookieEndAt; cookieValue = document.cookie; cookieStartAt = cookieValue.indexOf("" + cookieName + "="); if (cookieStartAt == -1) cookieStartAt = cookieValue.indexOf(cookieName + "="); if (cookieStartAt == -1) { cookieValue = null; }else { cookieStartAt = cookieValue.indexOf("=", cookieStartAt) + 1; cookieEndAt = cookieValue.indexOf(";", cookieStartAt); if (cookieEndAt == -1) cookieEndAt = cookieValue.length; cookieValue = unescape(cookieValue.substring(cookieStartAt, cookieEndAt));//解码latin-1 } return cookieValue; }, }, }) })(window, jQuery)

 

引入时需要先引入jquery.js,如下:

<script type="text/javascript" src="jquery-3.1.0.min.js"></script>
<script type="text/javascript" src="leo.js"></script>

 

使用时直接调用,如下:

console.log($.date.countMonth(‘2015,10,30‘, 4));          // 2016-02-29
console.log($.date.countMonth(‘2015,10-30‘, -8));         // 2015-02-28
console.log($.date.countDay(‘2016-8/2‘,‘2016,7-20‘));      // 13

var n = 0;
$.action.setTimeoutWidthNum(func);                  // 默认调用5次
function func(){
    console.log(n);                           // 0, 1, 2, 3, 4
    n ++;
}

$.position.center(‘#box‘);                        // 上下垂直居中
$.position.center(‘#box‘, true, false);            // 左右居中
$.position.center(‘#box‘, false);               // 上下居中
$.browser.setCookie(‘uname‘, ‘leo‘);    
console.log($.browser.getCookie(‘uname‘));             // leo
$.browser.setCookie(‘uname‘,‘‘);
console.log($.browser.getCookie(‘uname‘));             // null

本人会持续更新,谢谢支持 \(^o^)/~

jQuery扩展功能

标签:

原文地址:http://www.cnblogs.com/LY-leo/p/5740745.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!