common_t.js


/**
* 通用工具组件 对原有的工具进行封装,自定义某方法统一处理<br>
* ^_^
*
* Author: em.D
* Date: 2016-05-17
* Version: 0.0.1
*/ function send_http() {
$(selector)..get(URL, data, function(data,status,xhr) {}, dataType);
$(selector).post(URL, data, function(data,status,xhr) {}, dataType)
$(selector).getJSON(url, data, function(data,status,xhr) {});
}
function all_ajax() {
$.ajax({
url: "xx.do",
type: "post",
data: {},
//async: false, //设置为同步,默认为异步(一般不需要)
cache: false,
dataType: "json",
//password: "",
timeout: 1000 * 10, // 毫秒
beforeSend: function(XMLHttpRequest) {
// ShowLoading();
},
success: function(data) {
if (data != null) {
if ("success" == data.result) {
// TODO
} else {
// $.messager.alert("系统提示", "操作失败,请重试", "info");
}
// console.log("result = " + data.result + ",msg=" +
// data.msg);//IE不支持console输出
} else {
// $.messager.alert("系统提示","返回结果为空!","info");
}
},
complete: function(XMLHttpRequest, textStatus) {
// alert("textStatus="+textStatus);
// closeLoading();//关闭进度条
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
// closeLoading();//关闭进度条
if ("error" == textStatus) {
// $.messager.alert("系统提示", "服务器未响应,请稍候再试", "info");
} else {
// $.messager.alert("系统提示", "请求失败,textStatus="+textStatus,
// "info");
}
},
});
} ;
(function() { $.extend({
log: function(message) {
var now = new Date(),
y = now.getFullYear(),
m = now.getMonth() + 1, // !JavaScript中月分是从0开始的
d = now.getDate(),
h = now.getHours(),
min = now.getMinutes(),
s = now.getSeconds(), time = y + '/' + m + '/' + d + ' ' + h + ':' + min + ':' + s;
console.log(time + ' My Log: ' + message);
}
});
//$.log('initializing...'); // 调用 em = {};
em.ajax = (function(params) {
var pp = {
error: function(XMLHttpRequest, textStatus, errorThrown) {
console.log("数据请求异常,异常状态:" + XMLHttpRequest.status);
}
};
$.extend(pp, params);
$.ajax(pp);
});
/**
* 表单提交
* @param from 表单ID
* @param params ajax参数
*
* @author em.D
*/
em.ajaxSubmit = (function(form, params) {// form 表单ID. params ajax参数
var pp = {
// clearForm: true,
// resetForm: true,
error: function(XMLHttpRequest, textStatus, errorThrown) {
console.log("数据请求异常,异常状态:" + XMLHttpRequest.status);
}
};
$.extend(pp, params);
$(form).ajaxSubmit(pp);
});
CommonUtil = {
/**
* ajax同步请求 返回一个html内容 dataType=html. 默认为html格式 如果想返回json.
* CommonUtil.ajax(url, data, "json")
*
* @author em.D
*/
ajax: function(url, data, dataType) {
if (!CommonUtil.notNull(dataType)) {
dataType = "html";
}
var html = '没有结果!';
// 所以AJAX都必须使用em.ajax..这里经过再次封装,统一处理..同时继承ajax所有属性
if (url.indexOf("?") > -1) {
url = url + "&_t=" + new Date();
} else {
url = url + "?_t=" + new Date();
}
em.ajax({
type: "post",
url: url,
data: data,
dataType: dataType, // 这里的dataType就是返回回来的数据格式了html,xml,json
async: false,
cache: false, // 设置是否缓存,默认设置成为true,当需要每次刷新都需要执行数据库操作的话,需要设置成为false
traditional: true, // struts2数组参数异常
//contentType: "application/json",
success: function(data) {
html = data;
}
});
return html;
},
ajaxAsync: function(type, url, param, dataType, callback) {
if (!CommonUtil.notNull(type)) {
type = "get";
}
if (!CommonUtil.notNull(dataType)) {
dataType = "html";
}
if (url.indexOf("?") > -1) {
url = url + "&_t=" + new Date();
} else {
url = url + "?_t=" + new Date();
}
//(callback && typeof(callback)==="function") && callback();
if(!(typeof callback == "function")) {
callback = function(data) {
$.log("ajaxAsync执行失败,callback不是函数!");
}
}
em.ajax({
type: type,
url: url,
data: param,
dataType: dataType,
async: true,
cache: false,
success: callback
});
}, /**
* 获取地址栏参数
*/
getURLParam: function(name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
var url = window.location.search.substring(1).match(reg);
if (url != null) {
return decodeURI(url[2]); // decodeURI | unescape
}
return null;
}, /**
* 判断某对象不为空..返回true 否则 false
*
* @author em.D
*/
notNull: function(obj) {
if (obj === null) {
return false;
} else if (obj === undefined) {
return false;
} else if (obj === "undefined") {
return false;
} else if (obj === "") {
return false;
} else if (obj === "[]") {
return false;
} else if (obj === "{}") {
return false;
} else {
return true;
} }, /**
* 判断某对象不为空..返回obj 否则 ""
*
* @author em.D
*/
notEmpty: function(obj) {
if (obj === null) {
return "";
} else if (obj === undefined) {
return "";
} else if (obj === "undefined") {
return "";
} else if (obj === "") {
return "";
} else if (obj === "[]") {
return "";
} else if (obj === "{}") {
return "";
} else {
return obj;
} },
/**
* 判断参数(String,Array,Object)是否为undefined或者值为空, true: 为空
*/
isEmptyValue: function(value) {
var type;
if(value == null) { // 等同于 value === undefined || value === null
return true;
}
type = Object.prototype.toString.call(value).slice(8, -1);
switch(type) {
case 'String':
return !$.trim(value);
case 'Array':
return !value.length;
case 'Object':
return $.isEmptyObject(value); // 普通对象使用 for...in 判断,有 key 即为 false
default:
return false; // 其他对象均视作非空
}
},
/**
* 阻止事件冒泡
*/
preventBubble: function() {
/*
* return false 在事件的处理中,可以阻止默认事件和冒泡事件。
* event.preventDefault()在事件的处理中,可以阻止默认事件但是允许冒泡事件的发生。
* event.stopPropagation()在事件的处理中,可以阻止冒泡但是允许默认事件的发生。
*/
var e = arguments.callee.caller.arguments[0] || event; // 若省略此句,下面的e改为event,IE运行可以,但是其他浏览器就不兼容
if (e && e.stopPropagation) {
// this code is for Mozilla and Opera
e.stopPropagation();
} else if (window.event) {
// this code is for IE
window.event.cancelBubble = true;
}
},
loadingImg: function() {
var html = '<div class="alert alert-warning">'
+ '<button type="button" class="close" data-dismiss="alert">'
+ '<i class="ace-icon fa fa-times"></i></button><div style="text-align:center">'
//+ '<img src="' + rootPath + '/images/loading.gif"/><div>'
+ '<img src="images/loading.gif"/><div>'
+ '</div>';
return html;
},
/**
* html标签转义
*
* @author em.D
*/
htmlspecialchars: function(str) {
var s = "";
if (str.length == 0)
return "";
for (var i = 0; i < str.length; i++) {
switch (str.substr(i, 1)) {
case "<":
s += "<";
break;
case ">":
s += ">";
break;
case "&":
s += "&";
break;
case " ":
if (str.substr(i + 1, 1) == " ") {
s += "  ";
i++;
} else
s += " ";
break;
case "\"":
s += """;
break;
case "\n":
s += "";
break;
default:
s += str.substr(i, 1);
break;
}
}
},
/**
* in_array判断一个值是否在数组中
*/
in_array: function(array, string) {
for (var s = 0; s < array.length; s++) {
thisEntry = array[s].toString();
if (thisEntry == string) {
return true;
}
}
return false;
},
formatNum: function(num) {
var patt = new RegExp(/(\+|-)?(\d+)(\.\d+)?/g);
if (!patt.test(num)) {
return num;
}
var a = RegExp.$1, b = RegExp.$2, c = RegExp.$3;
var re = new RegExp("(\\d)(\\d{3})(,|$)");
while (re.test(b)) {
b = b.replace(re, "$1,$2$3");
}
return a + "" + b + "" + c;
}, setLstorageVal: function(key, value) {
window.localStorage['emSsnsrg_' + key] = value;
},
getLstorageVal: function(key) {
if(window.localStorage['emSsnsrg_'+key])
return window.localStorage['emSsnsrg_' + key];
else if(window.localStorage['emSsnsrg_' + key])
return window.localStorage['emSsnsrg_' + key];
else
return "";
},
clearLstorageVal: function(key) {
if(key)
window.localStorage.removeItem('emSsnsrg_' + key);
else
window.localStorage.clear();
}, setStorageVal: function(key, value) {
window.sessionStorage['emSsnsrg_'+key] = value;
},
getStorageVal: function(key) {
if(sessionStorage['emSsnsrg_' + key])
return sessionStorage['emSsnsrg_' + key];
else if(window.sessionStorage['emSsnsrg_' + key])
return window.sessionStorage['emSsnsrg_' + key];
else
return "";
},
clearStorageVal: function(key) {
if(key)
window.sessionStorage.removeItem('emSsnsrg_' + key);
else
window.sessionStorage.clear();
}
};
})();
// 表单json格式化方法……不使用&拼接
(function($) { var my_blink_plug_name = "myblink";
/**
*
*
$("div").myblink({
interval: 300, // 闪动间隔时间,默认为100
blink_count: 3, // 最大闪动次数,0表示无限
before_blink: function (obj){ // 闪动前回调方法
$(obj).css({color: "red"});
},
after_blink: function (obj){ // 闪动结束回调方法
$(obj).css({color: "black"});
}
}); $("div").fadeIn(100).fadeOut(100).fadeIn(100).fadeOut(100).fadeIn(100);
*/
$.fn[my_blink_plug_name] = function(options) {
var defaults = {
interval: 100,
blink_count: 0,
before_blink: function(obj) {},
after_blink: function(obj) {}
};
this.settings = $.extend({}, defaults, options);
var _this = this;
var c = 0;
_this.settings.before_blink(_this);
var myVar = setInterval(function() {
if (_this.css("visibility") == "visible") {
_this.css('visibility', 'hidden');
} else {
_this.css('visibility', 'visible');
if(_this.settings.blink_count > 0) {
c ++;
if(c == _this.settings.blink_count){
clearInterval(myVar);
_this.settings.after_blink(_this);
}
}
}
}, _this.settings.interval);
return this;
}; $.fx.step["backgroundPosition"] = function(fx) {
if (typeof fx.end == 'string') {
fx.start = getBgPos(fx.elem);
// fx.end原本是一个string,这里将它转换成数组,就不会再进入这个if,也方便我们下面的计算
// 例 "0px -21px"
fx.end = [parseFloat(fx.end.split(" ")[0]), parseFloat(fx.end.split(" ")[1])];
}
// 这里fx.pos是根据传入的时间参数,从0到1变化的浮点数
var nowPosX = ((fx.end[0] - fx.start[0]) * fx.pos) + fx.start[0] + fx.unit;
var nowPosY = ((fx.end[1] - fx.start[1]) * fx.pos) + fx.start[1] + fx.unit;
fx.elem.style.backgroundPosition = nowPosX + ' ' + nowPosY; /**
* 获取backgroundPosition数组[top, left],没有单位
*/
function getBgPos(elem) {
var top = 0.0;
var left = 0.0;
if ($(elem).css("backgroundPosition")) {
// 例 "0px -21px"
top = parseFloat($(elem).css("backgroundPosition").split(" ")[0]);
left = parseFloat($(elem).css("backgroundPosition").split(" ")[1]);
} else {
top = parseFloat($(elem).css("backgroundPositionX"));
left = parseFloat($(elem).css("backgroundPositionY"));
}
return [top, left];
}
}; /* end */ /**
* <pre>
* 自定义jquery函数,完成将form 数据转换为 json格式
*
* // 将 form 数据转换 json格式
* var params = $("#searchForm").serializeJson(); <pre>
*
* @author em.D
*
*/
$.fn.serializeJson = function() {
var serializeObj = {}; // 目标对象
var array = this.serializeArray(); // 转换数组格式
// var str=this.serialize();
$(array).each(function() { // 遍历数组的每个元素 {name: xx , value: xxx}
if (serializeObj[this.name]) { // 判断对象中是否已经存在 name,如果存在name
if ($.isArray(serializeObj[this.name])) {
serializeObj[this.name].push(this.value); // 追加一个值 hobby: ['音乐','体育']
} else {
// 将元素变为 数组 ,hobby: ['音乐','体育']
serializeObj[this.name] = [serializeObj[this.name], this.value ];
}
} else {
serializeObj[this.name] = this.value; // 如果元素name不存在,添加一个属性 name:value
}
});
return serializeObj;
}; /**
* 限制只能输入数字和字母
*/
$.fn.onlyNumAlpha = function() {
$(this).keypress(function(event) {
var eventObj = event || e;
var keyCode = eventObj.keyCode || eventObj.which;
if ((keyCode >= 48 && keyCode <= 57) || (keyCode >= 65 && keyCode <= 90) || (keyCode >= 97 && keyCode <= 122))
return true;
else
return false;
}).focus(function() {
this.style.imeMode = 'disabled';
}).bind("paste", function() {
var clipboard = window.clipboardData.getData("Text");
if (/^(\d|[a-zA-Z])+$/.test(clipboard))
return true;
else
return false;
});
}; $.fn.rowspan = function(colIdx) {
return this.each(function() {
var that;
$('tr', this).each(function(row) {
$('td:eq(' + colIdx + ')', this).each(function(col) {
if ($(this).html() == $(that).html()) {
rowspan = $(that).attr("rowSpan");
if (rowspan == undefined) {
$(that).attr("rowSpan", 1);
rowspan = $(that).attr("rowSpan");
}
rowspan = Number(rowspan) + 1;
$(that).attr("rowSpan", rowspan); // do your action for the colspan cell here
$(this).hide(); // .remove(); // do your action for the old cell here
} else {
that = this;
}
that = (that == null) ? this: that; // set the that if not already set
});
});
});
}; /**
* [numFormat 数字添加千位分隔符]
* @return {[String]} [123,123,123]
*/
Number.prototype.numFormat = function() {
if (!CommonUtil.notNull(this)) {
return "0";
}
var patt = new RegExp(/(\+|-)?(\d+)(\.\d+)?/g);
if (!patt.test(this)) {
return this;
}
var a = RegExp.$1,
b = RegExp.$2,
c = RegExp.$3;
var re = new RegExp("(\\d)(\\d{3})(,|$)");
while (re.test(b)) {
b = b.replace(re, "$1,$2$3");
}
return a + "" + b + "" + c;
}; String.prototype.trim = function() {
return this.replace(/^\s+/, '').replace(/\s+$/, '');
};
String.prototype.numFormat = function() {
if (!CommonUtil.notNull(this)) {
return "0";
} var patt = new RegExp(/(\+|-)?(\d+)(\.\d+)?/g);
if (!patt.test(this)) {
return this;
}
var a = RegExp.$1, b = RegExp.$2, c = RegExp.$3;
var re = new RegExp("(\\d)(\\d{3})(,|$)");
while (re.test(b)) {
b = b.replace(re, "$1,$2$3");
}
return a + "" + b + "" + c;
}; /**
* [format 对Date的扩展,将 Date 转化为指定格式的String]
*
// 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字), 月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符
*
* @param {[string]} format [yyyy-MM-dd hh:mm:ss:S q]
* @return {[string]} [格式化之后的日期对象]
*/
// (new Date()).Format("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423
// (new Date()).Format("yyyy-M-d h:m:s.S") ==> 2006-7-2 8:9:4.18
Date.prototype.format = function(format) {
var o = {
"M+" : this.getMonth() + 1, // month
"d+" : this.getDate(), // day
"h+" : this.getHours(), // hour
"m+" : this.getMinutes(), // minute
"s+" : this.getSeconds(), // second
"q+" : Math.floor((this.getMonth() + 3) / 3), // quarter
"S" : this.getMilliseconds()// millisecond
};
if (/(y+)/.test(format)) {
format = format.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
}
for ( var k in o) {
if (new RegExp("(" + k + ")").test(format)) {
format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length));
}
}
return format;
}; /**
* 对Date的扩展,将 Date 转化为指定格式的String
* 月(M)、日(d)、12小时(h)、24小时(H)、分(m)、秒(s)、周(E)、季度(q) 可以用 1-2 个占位符
* 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字)
* eg:
* (new Date()).pattern("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423
* (new Date()).pattern("yyyy-MM-dd E HH:mm:ss") ==> 2009-03-10 二 20:09:04
* (new Date()).pattern("yyyy-MM-dd EE hh:mm:ss") ==> 2009-03-10 周二 08:09:04
* (new Date()).pattern("yyyy-MM-dd EEE hh:mm:ss") ==> 2009-03-10 星期二 08:09:04
* (new Date()).pattern("yyyy-M-d h:m:s.S") ==> 2006-7-2 8:9:4.18
* var date = new Date();
* window.alert(date.pattern("yyyy-MM-dd hh:mm:ss"));
*/
Date.prototype.pattern=function(fmt) {
var o = {
"M+" : this.getMonth()+1, //月份
"d+" : this.getDate(), //日
"h+" : this.getHours()%12 == 0 ? 12 : this.getHours()%12, //小时
"H+" : this.getHours(), //小时
"m+" : this.getMinutes(), //分
"s+" : this.getSeconds(), //秒
"q+" : Math.floor((this.getMonth()+3)/3), //季度
"S" : this.getMilliseconds() //毫秒
};
var week = {
"0" : "/u65e5",
"1" : "/u4e00",
"2" : "/u4e8c",
"3" : "/u4e09",
"4" : "/u56db",
"5" : "/u4e94",
"6" : "/u516d"
};
if(/(y+)/.test(fmt)){
fmt=fmt.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length));
}
if(/(E+)/.test(fmt)){
fmt=fmt.replace(RegExp.$1, ((RegExp.$1.length>1) ? (RegExp.$1.length>2 ? "/u661f/u671f" : "/u5468") : "")+week[this.getDay()+""]);
}
for(var k in o){
if(new RegExp("("+ k +")").test(fmt)){
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length)));
}
}
return fmt;
} Array.prototype.max = function() { // 最大值
return Math.max.apply({}, this);
};
Array.prototype.min = function() { // 最小值
return Math.min.apply({}, this);
};
Array.prototype.indexOf = function(el) {
for (var i = 0, n = this.length; i < n; i++) {
if (this[i] === el) {
return i;
}
}
return -1;
}; /**
* 删除数组指定下标或指定对象
*/
Array.prototype.remove = function(obj) {
for (var i = 0; i < this.length; i++) {
var temp = this[i];
if (!isNaN(obj)) {
temp = i;
}
if (temp == obj) {
for (var j = i; j < this.length; j++) {
this[j] = this[j + 1];
}
this.length = this.length - 1;
}
}
}; // 局部作用域中使用$来引用jQuery
})(jQuery); /*
* ! [Cookie基本操作]
* @param {[Windo]} win [description]
* @param {[Document]} doc) { var exp, strsec; var getsec [description]
* @return {[type]} [description]
*/
var EmCookie = (function(win, doc) {
var exp,
strsec;
var getsec = function(str) {
var str1 = str.substring(1, str.length) * 1;
var str2 = str.substring(0, 1);
if (str2 == "s") {
return str1 * 1000;
} else if (str2 == "h") {
return str1 * 60 * 60 * 1000;
} else if (str2 == "d") {
return str1 * 24 * 60 * 60 * 1000;
}
};
/**
* [get 获取Cookie]
* @param {[String]} name [Cookie名称]
* @return {[Object]} [Cookie对应的值]
*/
var get = function(name) {
var arr,
reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)");
if (arr = doc.cookie.match(reg)) {
return unescape(arr[2]);
} else {
return null;
}
};
/**
* [set 设置Cookie,默认设置30天]
* @param {[String]} name [Cookie名称]
* @param {[Object]} value [Cookie值]
* @param {[Date]} time [过期时间,s20是代表20秒,h是指小时,如12小时则是:h12,d是天数,30天则:d30]
*/
var set = function(name, value, time) {
exp = new Date();
if (CommonUtil.notNull(time)) {
strsec = getsec(time);
} else {
strsec = getsec("d30");
}
exp.setTime(exp.getTime() + strsec * 1);
doc.cookie = name + "=" + escape(value) + ";expires=" + exp.toGMTString();
};
/**
* [remove 删除Cookie]
* @param {[String]} name [Cookie名称]
*/
var remove = function(name) {
exp = new Date();
exp.setTime(exp.getTime() - 1);
var cval = get(name);
if (cval != null) {
doc.cookie = name + "=" + cval + ";expires=" + exp.toGMTString();
}
};
var clear = function() {
var keys = document.cookie.match(/[^ =;]+(?=\=)/g);
if (keys) {
for (var i = keys.length; i--;)
document.cookie = keys[i] + '=0;expires=' + new Date(0).toUTCString();// + "; path=/yxw/";
}
};
//document.cookie;
return {
get: get,
set: set,
remove: remove,
clear: clear
}
}(window, document));var matched,
browser;
jQuery.uaMatch = function( ua ) {
ua = ua.toLowerCase();
var match = /(chrome)[ \/]([\w.]+)/.exec( ua )
|| /(webkit)[ \/]([\w.]+)/.exec( ua )
|| /(opera)(?:.*version|)[ \/]([\w.]+)/.exec( ua )
|| /(msie) ([\w.]+)/.exec( ua )
|| ua.indexOf("compatible") < 0
&& /(mozilla)(?:.*? rv:([\w.]+)|)/.exec( ua )
|| [];
return {
browser: match[ 1 ] || "",
version: match[ 2 ] || "0"
};
};
matched = jQuery.uaMatch( navigator.userAgent );
browser = {};
if (matched.browser) {
browser[matched.browser] = true;
browser.version = matched.version;
}
// Chrome is Webkit, but Webkit is also Safari.
if ( browser.chrome ) {
browser.webkit = true;
} else if ( browser.webkit ) {
browser.safari = true;
}
jQuery.browser = browser;
/*
//下面是直接写的判断,上面jq的获取方法
if (matched.browser == 'mozilla') {
$('#Online-message .liuyan').css({'padding-left': '0px','padding-right': '0px'})
}
if (!$.support.leadingWhitespace) {
$("#browser_ie").show();
}
*/
/*
* 浏览器全屏
*/
function fullScreen() {
var el = document.documentElement;
var rfs = el.requestFullScreen || el.webkitRequestFullScreen;
if (typeof rfs != "undefined" && rfs) {
rfs.call(el);
} else if (typeof window.ActiveXObject != "undefined") {
var wscript = new ActiveXObject("WScript.Shell");
if (wscript != null) {
wscript.SendKeys("{F11}");
}
} else if (el.msRequestFullscreen) {
el.msRequestFullscreen();
} else if (el.oRequestFullscreen) {
el.oRequestFullscreen();
} else {
swal({
title : "浏览器不支持全屏调用!",
text : "请更换浏览器或按F11键切换全屏!(3秒后自动关闭)",
type : "error",
timer : 3000
});
}
}
/*
* 浏览器退出全屏
*/
function exitFullScreen() {
var el = document;
var cfs = el.cancelFullScreen
|| el.webkitCancelFullScreen
|| el.exitFullScreen; if (typeof cfs != "undefined" && cfs) {
cfs.call(el);
} else if (typeof window.ActiveXObject != "undefined") {
var wscript = new ActiveXObject("WScript.Shell");
if (wscript != null) {
wscript.SendKeys("{F11}");
}
} else if (el.msExitFullscreen) {
el.msExitFullscreen();
} else if (el.oRequestFullscreen) {
el.oCancelFullScreen();
} else {
swal({
title : "浏览器不支持全屏调用!",
text : "请更换浏览器或按F11键切换全屏!(3秒后自动关闭)",
type : "error",
timer : 3000
});
} } Scaling = {};
;(function(win, doc, $){ Scaling.zoom = function() {
var ww = $(window).width(); if(!$.browser.webkit) {
if(ww < 1370 && ww > 1030) {
$('body').addClass("scaling1366");
} else if (ww < 1030 && ww < 965) {
$('body').addClass("scaling1024");
} else if (ww < 965 && ww < 0) {
$('body').addClass("scaling960");
}
}
} } (window, document, jQuery)); // JavaScript Document
// 通告无缝滚动
;(function($) { /** 调用Demo:
$("#largeEarlyWarningCon").myScroll({
speed: 40, // 数值越大,速度越慢
rowHeight: 26 // li的高度
});
*/
$.fn.myScroll = function(options) {
var defaults = {
speed: 40,
rowHeight: 24
}; var opts = $.extend({}, defaults, options),
intId = []; function marquee(obj, step) {
obj.find("ul").animate({
marginTop: '-=1'
}, 0, function() {
var s = Math.abs(parseInt($(this).css("margin-top")));
if (s >= step) {
$(this).find("li").slice(0, 1).appendTo($(this));
$(this).css("margin-top", 0);
}
});
}
this.each(function(i) {
var sh = opts["rowHeight"],
speed = opts["speed"],
_this = $(this);
intId[i] = setInterval(function() {
if (_this.find("ul").height() <= _this.height()) {
clearInterval(intId[i]);
} else {
marquee(_this, sh);
}
}, speed); _this.hover(function() {
clearInterval(intId[i]);
}, function() {
intId[i] = setInterval(function() {
if (_this.find("ul").height() <= _this.height()) {
clearInterval(intId[i]);
} else {
marquee(_this, sh);
}
}, speed);
});
});
} })(jQuery);

一些通用的js工具类,添加自定义插件的更多相关文章

  1. 分享非常好用的前端分页js工具类 灵活 简单易懂

    分享自己封装的前端分页js工具类  下面是默认样式效果截图 可以随意更改js及css 很灵活 /** * pageSize, 每页显示数 * pageIndex, 当前页数 * pageCount 总 ...

  2. Java中使用最频繁及最通用的Java工具类

    在Java中,工具类定义了一组公共方法,Java中使用最频繁及最通用的Java工具类. 一. org.apache.commons.io.IOUtils closeQuietly:关闭一个IO流.so ...

  3. JS 工具类

    之前工作用的JavaScript比较多,总结了一下工具类,和大家分享一下,有不足之处还请多多见谅!! 1. 数组工具类(arrayUtils) var arrayUtils = {}; (functi ...

  4. Rhino+envjs-1.2.js 在java运行网站js 工具类

    java爬虫遇到个页面加密的东西,找了些资料学习学习 做了个java运行js的工具类,希望对大家有用,其中用到client(获取js)可以自行换成自己的client.主要是用了 Rhino就是Java ...

  5. js工具类的封装

    common.js原生js实现的大多工具方法都将放在common文件中 布局rem.js,vue开发时,我们只需要将rem.js再main.js中import 引入即可 (function(win, ...

  6. js工具类大全

    /********** 日期处理函数 *********/<script type="text/javascript" src="${springMacroRequ ...

  7. js工具类 ----正则

    function(value){  if(value){   var reg=new RegExp("^[a-zA-Z0-9_-]+$");   return reg.test(v ...

  8. 一个很好的通用 excel 导出工具类

    此类用主要 jxl +注解+流 实现扩展性很强,jxl性能会比poi好一点,值得我们学习. package oa.common.utils; import java.io.OutputStream; ...

  9. JS工具类

    封装了开发中常用的操作 并添加了一些扩展方法供调用 var util = { //获取Url中的参数(不支持中文) getParams: function() { var url = location ...

随机推荐

  1. JVM之Java类加载机制

    什么是类加载机制 虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验.转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这既是虚拟机的类加载机制 类的生命周期 生命周期简述 ...

  2. Java线程之如何分析死锁及避免死锁

    什么是死锁 java中的死锁是一种编程情况,其中两个或多个线程被永久阻塞,Java死锁情况出现至少两个线程和两个或更多资源. 在这里,我们将写了一个简单的程序,它将导致java死锁场景,然后我们将分析 ...

  3. Taro 遇到的坑

    1.createSelectorQuery无法获取节点宽高 业务场景: 列表需要在最后一页底部显示 ‘我是有底线的~’ 提示,但是如果数据只有一页且不占满屏幕的话,就不显示.需要判断 ‘我是有底线的~ ...

  4. Oracle For Linux

    安装前检查 检查是否安装以下软件rpm -qa | grep **下面**软件包 安装包名称 是否安装 binutils-2.17.50.0.6 √ compat-libstdc++-33-3.2. ...

  5. BZOJ3033太鼓达人

    第一问,1<<k,谁都看得出来. 毫无思路,暴搜,枚举每一个数列,Hash加map判断是否重复,拿到30,打表都打不出来. #include <iostream> #inclu ...

  6. Http请求优化

    Http请求优化 我们在做项目开发或多或少的都会使用SpringCloud,其中做远程调度的时候会将HTTP请求Http请求优化. HTTP请求Client存在很多种. JDK原生的URLConnec ...

  7. Vue双向绑定的实现原理系列(一):Object.defineproperty

    了解Object.defineProperty() github源码 Object.defineProperty()方法直接在一个对象上定义一个新属性,或者修改一个已经存在的属性, 并返回这个对象. ...

  8. axios的拦截器(Interceptors)

    axios 的拦截器:interceptors 如果我们想在请求之前做点什么,用拦截器再好不过了 拦截器一般做什么? 1. 修改请求头的一些配置项 2. 给请求的过程添加一些请求的图标 3. 给请求添 ...

  9. JDBC——DBHelper代码模版

    JDBC数据库操作代码模版 package com.oolong.util; import java.sql.Connection; import java.sql.DriverManager; im ...

  10. wait/notify模拟连接池

    连接池中的连接可重复使用,减少每次新建和烧毁连接对资源的消耗,但连接池的容量大小也要设置合理,否则也会占用多余的资源.连接池的基本功能是获取连接和释放连接 连接在java中也是一个类,连接对象是一个普 ...