Files
ClassContent/历届学生/吴欣阳/项目开发/上课项目/屁桃儿/js/lib/lui.js
2024-09-27 02:06:13 +08:00

862 lines
32 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

;(function(global,undefined){
"use strict";
var g = {};
/**
返回文档中匹配指定 CSS 选择器的一个元素
* @param el CSS 选择器
*/
g.selector = function(el){
return document.querySelector(el);
}
/**
返回文档中匹配指定 CSS 选择器的集合
* @param el CSS 选择器
*/
g.selectorAll = function(el){
return document.querySelectorAll(el);
}
/**
* 判断是否支持touch事件
*/
g.isSupportTouch = function(){
return 'ontouchstart' in window
}
/**
* 获取地址栏参数值
* @param {string} name 参数名称
* @return 返回匹配结果
*/
g.getQueryString = function (name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
var r = window.location.search.substr(1).match(reg);
if (r != null) return unescape(r[2]);
return null;
}
/**
* 长按事件
* @param {string} el [选择器]
* @param {Function} cb [长按后的回调函数]
*/
g.longPress = function(el,cb){
var t = null,selector = g.selector(el);
var handleStart = g.isSupportTouch() ? 'touchstart' : 'mousedown',
handleEnd = g.isSupportTouch() ? 'touchend' : 'mouseup';
selector.addEventListener('contextmenu', function(e){
e.preventDefault();
});
selector.addEventListener(handleStart,function(e){
selector.style.cssText += '-webkit-touch-callout:none';
e.preventDefault();
t = setTimeout(function(){
if (cb && typeof cb == 'function') {
cb();
}
},800)
},false)
selector.addEventListener(handleEnd,function(){
clearTimeout(t);
},false)
}
/**
* 动态加载js
* @param url 传入的url,单个直接是字符串形式,多个以数组形式
* @param callback 加载js后的回调
*/
g.loadScript = function(url, callback) {
var script = document.createElement("script");
script.type = "text/javascript";
script.async = true;
script.defer = true;
if(typeof url === 'string'){
document.createElement("script");
script.type = "text/javascript";
script.async = true;
script.defer = true;
script.src = url;
} else {
for(var i = 0;i < url.length;i ++){
document.createElement("script");
script.type = "text/javascript";
script.async = true;
script.defer = true;
script.src = url[i];
}
}
document.head.appendChild(script);
if(callback && typeof callback == 'function'){
if (script.readyState) {
script.onreadystatechange = function () {
if (script.readyState == "loaded" || script.readyState == "complete") {
script.onreadystatechange = null;
callback();
}
};
} else {
script.onload = function () {
callback();
};
}
}
}
g.pullDownRefresh = function(container,callback){
var touch,startX,startY,moveX,moveY,touchX,touchY,flag = false;
var div = document.querySelector(container),
iconHeight = 50;
div.style.cssText += 'transform:translate3d(0,-'+iconHeight+'px,0);webkitTransform:translate3d(0,-'+iconHeight+'px,0);overscroll-behavior: contain';
div.addEventListener("touchstart",touchstart,false);
div.addEventListener("touchmove",touchmove,false);
div.addEventListener("touchend",touchend,false);
function touchstart(e){
flag = true;
// e.preventDefault();
var touch = e.changedTouches[0];
startX = touch.pageX;
startY = touch.pageY;
// console.log('touchstart:'+startX);
}
function touchmove(e){
var touch = e.changedTouches[0];
moveX = touch.pageX;
moveY = touch.pageY;
touchX = moveX - startX;
touchY = moveY - startY - iconHeight;
if (moveY - startY > 0 && flag){
if (touchY > 6) {
document.querySelector('#pullDown').classList.add('flip');
}else{
document.querySelector('#pullDown').classList.remove('flip');
}
div.style.cssText += 'transform:translate3d(0,'+touchY+'px,0);webkitTransform:translate3d(0,'+touchY+'px,0);';
}
// console.log('touchY:'+touchY);
}
function touchend(e){
flag = false;
div.style.cssText += 'transform:translate3d(0,-'+iconHeight+'px,0);webkitTransform:translate3d(0,-'+iconHeight+'px,0);transition:all .2s cubic-bezier(.08,.87,.08,.87);webkitTransition:all .2s cubic-bezier(.08,.87,.08,.87);';
if (callback && typeof callback === "object" && callback['end']) {
callback['end'](touchY)
};
}
},
/**
* 滑动到底加载更多(需要注意的是,有滚动条才能滚动,如果页面禁止了默认滑动,也无法使用该方法)
* @param wrap要滚动的元素
* @param callback滚动到底的回调函数
*/
g.scrollToBottom = function(wrap,callback){
var wrap = document.querySelector(wrap),
divHeight = wrap.clientHeight,
scrollTop,
scrollHeight,
t = null,
res;
wrap.onscroll = function(){
scrollHeight = this.scrollHeight;
scrollTop = this.scrollTop;
if(scrollTop + divHeight >= scrollHeight){
if(callback && typeof callback === "function"){
clearTimeout(t);
t = setTimeout(function(){
callback();
},100)
}
}else{
res = divHeight+'+'+scrollTop +'>'+ scrollHeight+'?';
callback(res);
}
};
}
/**
* tab切换
* @params tabs 包含tab和tabContent的盒子选择器
* @params cb 回调函数,内置一个下标参数
*/
g.tabs = function(tabs,cb){
var tabs = document.querySelector(tabs),
tab = tabs.querySelectorAll('[tab-role="tab"]'),
tabContent = tabs.querySelectorAll('[tab-role="tabContent"]');
tabs.addEventListener('click',function(e){
for(var i =0,len = tab.length;i < len;i++){
tab[i].setAttribute('data-id',i);
var index = e.target.dataset.id;
if(index == i){
tab[i].classList.add('active');
tabContent[i].style.display = 'block';
if (cb && typeof cb === 'function') {
cb(Number(index))
}
}else{
tab[i].classList.remove('active');
tabContent[i].style.display = 'none';
}
}
},true)
}
/**
*输入框高度自适应
*@param textarea 要绑定的textarea
*@param num 克隆的textarea的随机id(用于一个页面有多个textarea的情况)
*/
g.textareaAutoHeight = function(textarea,num){
var textarea = document.querySelector(textarea),
node = textarea.cloneNode(),
num = num || 0;
node.id = 'clone_textarea2017'+num;
document.querySelector('body').appendChild(node);
node.style.cssText = 'position:absolute;left:-1000000px';
textarea.oninput = function(e){
console.log('input');
node.value = textarea.value;
node.style.cssText += 'width:'+textarea.scrollWidth+'px';
var h = node.scrollHeight;
h=h>70?70:(h>35 ? h+2 : 30);
e.target.style.cssText = 'height:'+h+'px';
}
}
/**
* 计算文本域输入字数
* @param textField 要绑定的文本域
* @param cb 监听输入后的回调
*/
g.getTextFieldLen = function(textField,cb){
var el = g.selector(textField);
el.oninput = function(e){
var res = e.target.value.trim();
if (cb && typeof cb == 'function') {
cb(res.length);
}
}
}
/**
*搜索交互
@param opts 接收一个对象参数
*/
g.search = function(opts){
var opts = opts || {
el:el, //绑定搜索框外层元素
input:function(){ //实时输入的回调
},
clear:function(){ //清空搜索框输入值的回调
},
cancel:function(){ //取消搜索的回调
},
enter:function(){ //回车事件回调
}
}
var el = opts.el,
input = opts.input,
clear = opts.clear,
cancel = opts.cancel,
enter = opts.enter;
var labelEl = g.selector(el + ' [role="search-label"]'),
inputEl = g.selector(el + ' [role="search-input"]'),
closeEl = g.selector(el + ' [role="search-close"]'),
cancelEl = g.selector(el + ' [role="search-cancel"]');
//展开搜索框
var _showSearch = function(){
labelEl.style.display = 'none';
};
//显示删除按钮
var _showClose = function(){
var val = inputEl.value;
if(val.length){
closeEl.style.display = 'block';
if (input && typeof input === "function") {
input(val)
}
}else{
closeEl.style.display = 'none';
}
};
//清除输入框值
var _clearValue = function(){
inputEl.value = '';
closeEl.style.display = 'none';
if (clear && typeof clear === "function") {
clear()
}
};
//取消搜索
var _cancelSearch = function(){
_clearValue();
labelEl.style.display = 'block';
if (cancel && typeof cancel === "function") {
cancel()
}
};
//回车
inputEl.onkeypress = function(e){
var keyCode = e.which || e.keyCode;
var val = e.target.value;
if(keyCode == 13){
inputEl.blur();
if(enter && typeof enter === "function"){
enter(val)
}
}
}
labelEl.addEventListener('click',_showSearch,false);
inputEl.addEventListener('input',_showClose,false);
closeEl.addEventListener('click',_clearValue,false);
cancelEl.addEventListener('click',_cancelSearch,false);
}
/**
*底部弹出层
@param el 弹窗页面的选择器
@param callback 回调方法
*/
g.coverHandler = function(el,callback){
var t = null,el = document.querySelector(el);
if (!el.classList.contains('j_isOpenModal')) {
clearTimeout(t);
el.classList.add('j_isOpenModal');
el.style.display = 'block';
setTimeout(function(){
el.classList.remove('modal_out');
el.classList.add('modal_in');
},10)
if (callback && typeof callback === "object" && callback['open']) {
callback['open']();
};
}else {
el.classList.remove('j_isOpenModal');
el.classList.remove('modal_in');
el.classList.add('modal_out');
t = setTimeout(function(){
el.style.display = 'none';
},300)
if (callback && typeof callback === "object" && callback['close']) {
callback['close']();
};
}
}
/**
* loading
* @param text 提示内容,如果传入参数为close,则关闭loading
* @param opacity 遮罩透明度
*/
g.loading = function(text,opacity) {
var text = text || "加载中...";
var removeLoading = function(){
var maskEl = document.getElementById('j_loading_mask');
if (maskEl) {
maskEl.parentNode.removeChild(maskEl);
}
}
removeLoading()
if (text != 'close'){
var el = document.createElement('div');
el.id = 'j_loading_mask';
el.className = 'ui_loading_mask';
el.style.cssText = 'background:rgba(0,0,0,'+opacity+')';
el.innerHTML = '<div class="ui_loading_wrap" id="ui_loading_wrap">'
+ '<div id="loading" class="ui_loading"><div><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></div>'
+ '</div>'
+ '<div class="ui_loading_text">'
+ '<p>'+text+'</p>'
+ '</div>'
+ '</div>';
document.body.appendChild(el);
}
}
/**
* toast (opts接受一个对象参数)
* @param type 操作提示类型,文本类型text,警告类型warning,成功类型ok
* @param text 提示文本内容
* @param duration 持续多少毫秒退出
* @param position 所在页面位置
*/
g.toast = function(opts) {
var opts = opts || {};
opts.type = opts.type || 'ok';
opts.text = opts.text || '提示信息';
opts.position = opts.position || '';
opts.duration = opts.duration || 2000;
var el = document.createElement('div');
el.id = 'js_ui_toast';
el.className = 'ui_toast_wrap';
el.innerHTML = '<div class="ui_toast toast_'+opts.position+'">'
+ '<div class="ui_toast_inner">'
+ '<span class="ui_toast_ico_wrap"><i class="ui_toast_ico ui_toast_'+opts.type+'_ico"></i></span>'
+ '<div class="ui_toast_text">'
+ '<p>'+opts.text+'</p>'
+ '</div>'
+ '</div>'
+ '</div>';
document.body.appendChild(el);
el.childNodes[0].classList.add('ui_effect_fade');
setTimeout(function(){
var childEl = document.getElementById('js_ui_toast');
if (childEl) {
childEl.parentNode.removeChild(childEl);
}
},opts.duration)
}
/**
* showModal模态框 (opts 接收一个对象参数 )
* @param title 标题
* @param content 内容
* @param cancelText 取消按钮的文字
* @param confirmText 确认按钮的文字
* @param customClass 自定义class样式
* @param showCancel 是否显示取消按钮,默认为 true
* @param cancel {function} 取消按钮的回调函数
* @param confirm {function} 确定按钮的回调函数
* @param beforeHide {function} 退出模态框前的回调函数
*/
g.showModal = function(opts){
var opts = opts || {}
opts.title = opts.title || '提示';
opts.content = opts.content || '内容';
opts.cancelText = opts.cancelText || '取消';
opts.confirmText = opts.confirmText || '确认';
opts.customClass = opts.customClass || '';
opts.showCancel = opts.showCancel || false;
var modalEl = document.querySelector('#j_modal_wrap');
if (modalEl) {
modalEl.parentNode.removeChild(modalEl); //避免出现多个弹窗
}
var el = document.createElement('div');
el.id = 'j_modal_wrap';
el.className = 'ui_modal_wrap';
el.innerHTML = '<div class="ui_modal '+opts.customClass+'" id="j_modal">'
+ '<div class="ui_modal_hd">'+opts.title+'</div>'
+ '<div class="ui_modal_bd">'+opts.content+'</div>'
+ '<div class="ui_modal_ft" id="js_btns2017">'
+ '<a href="javascript:;" class="ui_modal_btn ui_modal_default_btn" data-btn="_cancel2017">'+opts.cancelText+'</a>'
+ '<a href="javascript:;" class="ui_modal_btn ui_modal_primary_btn" data-btn="_confirm2017">'+opts.confirmText+'</a>'
+ '</div>'
+ '</div>';
document.body.appendChild(el);
var cancelBtn = g.selector('[data-btn="_cancel2017"]'),
confirmBtn = g.selector('[data-btn="_confirm2017"]');
!opts.showCancel && cancelBtn.parentNode.removeChild(cancelBtn);
var modal_wrap = document.querySelector('#j_modal_wrap'),
modal = document.querySelector('#j_modal');
setTimeout(function(){
modal.classList.add('ui_modal_in');
},60)
var hideModal = function(){
modal.classList.remove('ui_modal_in');
modal.classList.add('ui_modal_out');
if (opts.beforeHide && typeof opts.beforeHide == 'function') {
opts.beforeHide()
}
setTimeout(function(){
modal_wrap.parentNode.removeChild(modal_wrap);
},200)
}
var modalBtnHandler = function(e){
var btn = e.target.dataset.btn;
if (btn) {
if(btn == "_cancel2017" && opts.cancel && typeof opts.cancel == "function"){
setTimeout(function(){
opts.cancel();
},201)
}
if(btn == "_confirm2017" && opts.confirm && typeof opts.confirm == "function") {
setTimeout(function(){
opts.confirm();
},201)
}
hideModal();
};
}
cancelBtn && cancelBtn.addEventListener('click',function(e){
modalBtnHandler(e);
},false);
confirmBtn && confirmBtn.addEventListener('click',function(e){
modalBtnHandler(e);
},false);
}
/**
* ajax封装(使用方法与jq的ajax方法几乎一样)
*/
g.request = function(opts) {
var opts = opts || {};
opts.type = opts.type.toUpperCase() || 'POST';
opts.url = opts.url || '';
opts.data = opts.data || null;
opts.beforeSend = opts.beforeSend || function() {};
opts.success = opts.success || function() {};
opts.error = opts.error || function() {};
opts.closeLoading = opts.closeLoading || false
var xmlHttp;
if (window.XMLHttpRequest) {
// IE7+, Firefox, Chrome, Opera, Safari 浏览器执行代码
xmlHttp = new XMLHttpRequest();
} else {
// IE6, IE5 浏览器执行代码
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
var params = [];
for (var key in opts.data) {
params.push(key + '=' + opts.data[key]);
}
var postData = params.join('&');
opts.beforeSend();
if (opts.type === 'POST') {
xmlHttp.open(opts.type, opts.url, true);
xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlHttp.send(postData);
} else if (opts.type === 'GET') {
xmlHttp.open(opts.type, opts.url + '?' + postData, true);
xmlHttp.send();
}
if (! opts.closeLoading) {
g.loading();
}
xmlHttp.onreadystatechange = function() {
if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
g.loading('close');
var res = JSON.parse(xmlHttp.responseText);
opts.success(res)
}
}
xmlHttp.onerror = function(e){
opts.error(e)
}
}
/**
* 索引列表滑动
* @param scrollElem 滚动元素的选择器
*/
g.indexAction = function(scrollElem){
var startX, startY, moveX, moveY, title, a, y = [],h = [],english,word_popup,t = null,flag = false;
title = document.querySelectorAll('[data-role="word_index"]');
english = document.querySelector('[data-role="word_list"]');
a = document.querySelectorAll('[data-role="word_list"] a');
word_popup = document.querySelector('[data-role="word_popup"]'); //popup
var fixed_h = (document.body.clientHeight - english.clientHeight) / 2; //原生js的offsetTop在元素用了fixed属性后,有bug,会从0计算,所以用窗口的高度减去元素的高度来计算距离
// console.log((fixed_h));
var scrollElem = scrollElem || '.ui_page_bd';
var offsetTop = 0;
var item = document.querySelector(scrollElem);
var startAction = this.isSupportTouch() ? 'touchstart' : 'mousedown';
var endAction = this.isSupportTouch() ? 'touchend' : 'mouseup';
for (var i = 0; i < a.length; i++) {
a[i].addEventListener([startAction], _start, false);
a[i].addEventListener('touchmove', _move, false);
a[i].addEventListener([endAction], _end, false);
y[i] = a[i].offsetTop + fixed_h;
h[i] = a[i].clientHeight;
};
function _start(e) {
flag = true;
if (g.isSupportTouch()) {
var touch = e.changedTouches[0];
startX = touch.pageX;
startY = touch.pageY;
}
var attr = e.target.dataset.href;
word_popup.classList.add('active');
word_popup.innerText = attr;
offsetTop = document.querySelector('#'+attr).offsetTop;
// item.scrollTo(0,offsetTop);
item.scrollTop = offsetTop
}
function _move(e) {
e.preventDefault();
if (flag) {
var touch = e.changedTouches[0];
moveX = touch.pageX;
moveY = touch.pageY;
word_popup.classList.add('active');
var scrollTop = document.body.scrollTop;
for (var j = 0; j < title.length; j++) { //循环需要滑动的英文字母
if ((y[j] + scrollTop < moveY) && (moveY < y[j] + h[j] + scrollTop)) { //计算区间获得对应字母的位置
offsetTop = document.querySelector('#'+title[j].id).offsetTop;
// item.scrollTo(0,offsetTop);
item.scrollTop = offsetTop;
word_popup.innerText = title[j].id;
}
};
}
}
function _end() {
flag = false;
clearTimeout(t);
t = setTimeout(function(){
word_popup.classList.remove('active');
},500);
}
}
/**
* 水印(增加密度)
* @param div 将水印挂载到指定div
* @param str 水印文字
* @param len 水印个数
*/
g.watermark = function(div,str,len){
var str = str || '保密水印';
var el,top,left,translateX,len = len || 10,container = document.querySelector(div);
container.style.cssText += 'position:relative;overflow:hidden;user-select:none;-webkit-user-select:none;'
for (var i = 0; i < len; i++) {
top = 19*i-40;
if(i%5 == 0){
left = '10%';
}
if(i%5 == 1){
left = '30%';
}
if(i%5 == 2){
left = '50%';
}
if(i%5 == 3){
left = '70%';
}
if(i%5 == 4){
left = '90%';
}
translateX = '-50%';
el = document.createElement('div');
el.className = 'fixed_watermark';
el.style.cssText = 'pointer-events:none;position:absolute;transform:rotate(-25deg) translateX('+translateX+');-webkit-transform:rotate(-25deg) translateX('+translateX+');font-size:16px;color:#bcc7cd;opacity:.5;user:none;-webkit-user:none;white-space:nowrap';
el.innerHTML = str;
el.style.cssText += 'left:'+left+';top:'+top+'px;';
if(container){
container.appendChild(el);
}else{
document.body.appendChild(el);
}
}
}
/**
* 详情图片预览
* @param img 图片选择器集合
*/
g.photoViewer = function(img){
var arr = document.querySelectorAll(img),i,len = arr.length,str ='',div;
div = document.createElement('div');
div.id = 'js_photoZoomWrap';
div.className = 'photoZoomWrap';
var init = function(){
str +='<div class="swiper-container photoZoom modal_out" id="swiperZoom">'
str += '<div class="swiper-wrapper">'
for (i = 0; i < len; i++) {
str += '<div class="swiper-slide">'
str += '<div class="swiper-zoom-container">'
str += '<img src="'+arr[i].src+'" class="swiper-lazy">'
str += '</div>'
str += '</div>';
}
str +='</div>'
str +='<div class="swiper-pagination swiper-pagination-white"></div>'
str += '<div class="swiper-button-prev"></div>'
str += '<div class="swiper-button-next"></div>'
str +='<div class="close_photoZoom" id="close_photoZoom"></div>'
str +='</div>';
div.innerHTML = str;
document.body.appendChild(div);
}();
var swiper = new Swiper('#swiperZoom', {
zoom: true,
pagination: {
el: '.swiper-pagination',
},
navigation: {
nextEl: '.swiper-button-next',
prevEl: '.swiper-button-prev',
},
on:{
click: function(event){
closePhotoZoom();
}
}
});
//关闭
var closePhotoZoom = function(){
g.selector('#swiperZoom').classList.remove('modal_in');
g.selector('#swiperZoom').classList.add('modal_out');
setTimeout(function(){
g.selector('#js_photoZoomWrap').classList.remove('active');
},200)
}
document.addEventListener('click',function(e){
if (e.target.id == 'close_photoZoom') {
closePhotoZoom();
}
},false)
//预览当前
for (var i = 0; i < arr.length; i++) {
(function(index){
arr[index].addEventListener('click',function(){
swiper.slideTo(index,0);
g.selector('#js_photoZoomWrap').classList.add('active');
g.selector('#swiperZoom').classList.remove('modal_out');
g.selector('#swiperZoom').classList.add('modal_in');
},false)
})(i)
};
}
/**
*上传图片预览大图
* @param img 图片选择器集合
* @param index 当前图片预览的索引
*/
g.photoZoomUpload = function(img,index){
var arr = document.querySelectorAll(img),i,len = arr.length,str ='',div;
div = document.createElement('div');
div.id = 'js_photoZoomUploadWrap';
div.className = 'photoZoomWrap';
var init = function(){
str += '<div class="swiper-container photoZoom modal_out" id="swiperZoomUpload">'
str += '<div class="swiper-wrapper">'
for (i = 0; i < len; i++) {
str += '<div class="swiper-slide">'
str += '<div class="swiper-zoom-container">'
str += '<img src="'+arr[i].src+'" class="swiper-lazy">'
str += '</div>'
str += '</div>';
}
str +='</div>'
str +='<div class="swiper-pagination swiper-pagination-white"></div>'
str +='<div class="swiper-button-prev"></div>'
str +='<div class="swiper-button-next"></div>'
str +='<div class="close_photoZoom" id="close_photoZoomUpload"></div>'
str +='</div>';
div.innerHTML = str;
document.body.appendChild(div);
}();
//关闭
var closePhotoZoom = function(){
var photoZoomWrap = g.selector('#js_photoZoomUploadWrap');
console.log(photoZoomWrap.parentNode)
photoZoomWrap.parentNode.removeChild(photoZoomWrap)
}
var swiper = new Swiper('#swiperZoomUpload', {
zoom: true,
initialSlide:index,
pagination: {
el: '.swiper-pagination',
},
navigation: {
nextEl: '.swiper-button-next',
prevEl: '.swiper-button-prev',
},
on:{
click: function(event){
closePhotoZoom();
}
}
});
swiper.pagination.update();
g.selector('#js_photoZoomUploadWrap').classList.add('active');
g.selector('#swiperZoomUpload').classList.remove('modal_out')
g.selector('#swiperZoomUpload').classList.add('modal_in');
document.addEventListener('click',function(e){
if (e.target.id == 'close_photoZoomUpload') {
closePhotoZoom();
}
},false)
}
/**
* 倒计时
* @param str 时间字符串
* @param cb 回调函数
*/
g.countDown = function(str,cb){
var s = "";
var t = setInterval(function(){
str = str.replace(/-/g,"/");
var lastDate = new Date(str);
var currDate = new Date();
if(lastDate < currDate){
clearInterval(t);
cb();
}
var intDiff = (lastDate.getTime()-currDate.getTime())/1000;
var day=0,
hour=0,
minute=0,
second=0;//时间默认值
if(intDiff > 0){
day = Math.floor(intDiff / (60 * 60 * 24));
hour = Math.floor(intDiff / (60 * 60)) - (day * 24);
minute = Math.floor(intDiff / 60) - (day * 24 * 60) - (hour * 60);
second = Math.floor(intDiff) - (day * 24 * 60 * 60) - (hour * 60 * 60) - (minute * 60);
}
if (day < 10) day = '0' + day;
if (hour < 10) hour = '0' + hour;
if (minute < 10) minute = '0' + minute;
if (second < 10) second = '0' + second;
s = day+"|"+hour+'|'+minute+'|'+second;
intDiff--;
cb(s)
}, 1000);
}
/**
* 获取第几天的时间
* @param num {Number} 第几天
* @param datetime {Date} 某天的日期
* @param format {String} 格式化
*/
g.getDateTime = function (num, datetime, format) {
var datetime = datetime || new Date(),
d = new Date(datetime);
d.setTime(d.getTime() + (24*60*60*1000) * num);
var addZero = function (n) {
return n < 10 ? "0" + n : n
}
var y = addZero(d.getFullYear()),
M = addZero(d.getMonth() + 1),
_d = addZero(d.getDate()),
h = addZero(d.getHours()),
m = addZero(d.getMinutes()),
s = addZero(d.getSeconds());
var res = ''
switch (format) {
case 'yyyy-MM-dd':
res = y + "-" + M + "-" + _d;
break;
case 'yyyy-MM-dd HH:mm':
res = y + "-" + M + "-" + _d + ' ' + h + ':' + m;
break;
default:
res = y + "-" + M + "-" + _d + ' ' + h + ':' + m + ':' + s;
break;
}
return res
},
/**
* 返回某天中文星期
* @param datetime {Date}
*/
g.getCnDay = function(datetime){
var datetime = datetime || new Date();
var d = new Date(datetime).getDay();
var arr = ['日','一','二','三','四','五','六']
return arr[d]
}
/**
* 控制select默认样式
*/
g.changeSelectStyle = function(ev){
if (ev.target.value === '') {
ev.target.classList.add('placeholderColor')
}else{
ev.target.classList.remove('placeholderColor')
}
}
//开启vConsole调试模式
if (g.getQueryString('vConsole') === '1') {
g.loadScript('js/3rd-plugins/vconsole.min.js',function(){
new VConsole();
})
}
global.lui = g;
})(window);