Merge pull request '杨名杰' (#8) from ymj_branch into develop
commit
c28add6a87
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1,2 +1,118 @@
|
||||
/** layui-v2.5.6 MIT License By https://www.layui.com */
|
||||
;layui.define("jquery",function(e){"use strict";var l=layui.$,o=function(e){},t='<i class="layui-anim layui-anim-rotate layui-anim-loop layui-icon "></i>';o.prototype.load=function(e){var o,i,n,r,a=this,c=0;e=e||{};var f=l(e.elem);if(f[0]){var m=l(e.scrollElem||document),u=e.mb||50,s=!("isAuto"in e)||e.isAuto,v=e.end||"没有更多了",y=e.scrollElem&&e.scrollElem!==document,d="<cite>加载更多</cite>",h=l('<div class="layui-flow-more"><a href="javascript:;">'+d+"</a></div>");f.find(".layui-flow-more")[0]||f.append(h);var p=function(e,t){e=l(e),h.before(e),t=0==t||null,t?h.html(v):h.find("a").html(d),i=t,o=null,n&&n()},g=function(){o=!0,h.find("a").html(t),"function"==typeof e.done&&e.done(++c,p)};if(g(),h.find("a").on("click",function(){l(this);i||o||g()}),e.isLazyimg)var n=a.lazyimg({elem:e.elem+" img",scrollElem:e.scrollElem});return s?(m.on("scroll",function(){var e=l(this),t=e.scrollTop();r&&clearTimeout(r),!i&&f.width()&&(r=setTimeout(function(){var i=y?e.height():l(window).height(),n=y?e.prop("scrollHeight"):document.documentElement.scrollHeight;n-t-i<=u&&(o||g())},100))}),a):a}},o.prototype.lazyimg=function(e){var o,t=this,i=0;e=e||{};var n=l(e.scrollElem||document),r=e.elem||"img",a=e.scrollElem&&e.scrollElem!==document,c=function(e,l){var o=n.scrollTop(),r=o+l,c=a?function(){return e.offset().top-n.offset().top+o}():e.offset().top;if(c>=o&&c<=r&&!e.attr("src")){var m=e.attr("lay-src");layui.img(m,function(){var l=t.lazyimg.elem.eq(i);e.attr("src",m).removeAttr("lay-src"),l[0]&&f(l),i++})}},f=function(e,o){var f=a?(o||n).height():l(window).height(),m=n.scrollTop(),u=m+f;if(t.lazyimg.elem=l(r),e)c(e,f);else for(var s=0;s<t.lazyimg.elem.length;s++){var v=t.lazyimg.elem.eq(s),y=a?function(){return v.offset().top-n.offset().top+m}():v.offset().top;if(c(v,f),i=s,y>u)break}};if(f(),!o){var m;n.on("scroll",function(){var e=l(this);m&&clearTimeout(m),m=setTimeout(function(){f(null,e)},50)}),o=!0}return f},e("flow",new o)});
|
||||
;layui.define("jquery", function(e) {
|
||||
"use strict";
|
||||
var l = layui.$, o = function(e) {}, t = '<i class="layui-anim layui-anim-rotate layui-anim-loop layui-icon "></i>';
|
||||
|
||||
// 定义 load 方法,用于加载更多内容
|
||||
o.prototype.load = function(e) {
|
||||
var o, i, n, r, a = this, c = 0;
|
||||
e = e || {};
|
||||
var f = l(e.elem); // 获取加载更多按钮所在的元素
|
||||
if (f[0]) { // 如果该元素存在
|
||||
var m = l(e.scrollElem || document), // 获取滚动容器元素,默认为 document
|
||||
u = e.mb || 50, // 滚动到距离底部多少距离时触发加载更多
|
||||
s = !("isAuto" in e) || e.isAuto, // 是否自动加载
|
||||
v = e.end || "没有更多了", // 加载完成后的提示
|
||||
y = e.scrollElem && e.scrollElem !== document, // 判断是否是自定义滚动区域
|
||||
d = "<cite>加载更多</cite>", // 默认的加载更多文本
|
||||
h = l('<div class="layui-flow-more"><a href="javascript:;">' + d + "</a></div>");
|
||||
|
||||
f.find(".layui-flow-more")[0] || f.append(h); // 如果没有加载更多的按钮,则追加
|
||||
var p = function(e, t) {
|
||||
e = l(e);
|
||||
h.before(e); // 将新内容插入到加载更多按钮之前
|
||||
t = 0 == t || null;
|
||||
t ? h.html(v) : h.find("a").html(d); // 如果已加载完毕,显示“没有更多了”
|
||||
i = t;
|
||||
o = null;
|
||||
n && n();
|
||||
};
|
||||
|
||||
// 加载更多逻辑
|
||||
var g = function() {
|
||||
o = !0;
|
||||
h.find("a").html(t); // 显示加载动画
|
||||
"function" == typeof e.done && e.done(++c, p); // 如果有 done 方法,调用它
|
||||
};
|
||||
|
||||
// 初始化加载
|
||||
g();
|
||||
// 点击加载更多时,触发加载操作
|
||||
h.find("a").on("click", function() {
|
||||
l(this);
|
||||
i || o || g();
|
||||
});
|
||||
|
||||
// 如果启用了懒加载
|
||||
if (e.isLazyimg) var n = a.lazyimg({ elem: e.elem + " img", scrollElem: e.scrollElem });
|
||||
|
||||
return s ? (m.on("scroll", function() {
|
||||
var e = l(this), t = e.scrollTop();
|
||||
r && clearTimeout(r);
|
||||
!i && f.width() && (r = setTimeout(function() {
|
||||
var i = y ? e.height() : l(window).height(),
|
||||
n = y ? e.prop("scrollHeight") : document.documentElement.scrollHeight;
|
||||
// 滚动到底部时加载更多
|
||||
n - t - i <= u && (o || g());
|
||||
}, 100));
|
||||
}), a) : a;
|
||||
}
|
||||
};
|
||||
|
||||
// 懒加载方法
|
||||
o.prototype.lazyimg = function(e) {
|
||||
var o, t = this, i = 0;
|
||||
e = e || {};
|
||||
var n = l(e.scrollElem || document), r = e.elem || "img", a = e.scrollElem && e.scrollElem !== document;
|
||||
|
||||
// 图片加载检查和设置
|
||||
var c = function(e, l) {
|
||||
var o = n.scrollTop(), r = o + l, c = a ? function() {
|
||||
return e.offset().top - n.offset().top + o;
|
||||
}() : e.offset().top;
|
||||
if (c >= o && c <= r && !e.attr("src")) {
|
||||
var m = e.attr("lay-src");
|
||||
layui.img(m, function() {
|
||||
var l = t.lazyimg.elem.eq(i);
|
||||
e.attr("src", m).removeAttr("lay-src");
|
||||
l[0] && f(l);
|
||||
i++;
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
// 触发懒加载
|
||||
var f = function(e, o) {
|
||||
var f = a ? (o || n).height() : l(window).height(), m = n.scrollTop(), u = m + f;
|
||||
t.lazyimg.elem = l(r);
|
||||
if (e) c(e, f);
|
||||
else {
|
||||
for (var s = 0; s < t.lazyimg.elem.length; s++) {
|
||||
var v = t.lazyimg.elem.eq(s),
|
||||
y = a ? function() {
|
||||
return v.offset().top - n.offset().top + m;
|
||||
}() : v.offset().top;
|
||||
if (c(v, f), i = s, y > u) break;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
// 初次加载图片
|
||||
f();
|
||||
if (!o) {
|
||||
var m;
|
||||
n.on("scroll", function() {
|
||||
var e = l(this);
|
||||
m && clearTimeout(m);
|
||||
m = setTimeout(function() {
|
||||
f(null, e);
|
||||
}, 50);
|
||||
});
|
||||
o = !0;
|
||||
}
|
||||
return f;
|
||||
};
|
||||
|
||||
// 定义模块接口
|
||||
e("flow", new o);
|
||||
});
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1,2 +1,106 @@
|
||||
/** layui-v2.5.6 MIT License By https://www.layui.com */
|
||||
;layui.define("jquery",function(e){"use strict";var a=layui.jquery,i={config:{},index:layui.rate?layui.rate.index+1e4:0,set:function(e){var i=this;return i.config=a.extend({},i.config,e),i},on:function(e,a){return layui.onevent.call(this,n,e,a)}},l=function(){var e=this,a=e.config;return{setvalue:function(a){e.setvalue.call(e,a)},config:a}},n="rate",t="layui-rate",o="layui-icon-rate",s="layui-icon-rate-solid",u="layui-icon-rate-half",r="layui-icon-rate-solid layui-icon-rate-half",c="layui-icon-rate-solid layui-icon-rate",f="layui-icon-rate layui-icon-rate-half",v=function(e){var l=this;l.index=++i.index,l.config=a.extend({},l.config,i.config,e),l.render()};v.prototype.config={length:5,text:!1,readonly:!1,half:!1,value:0,theme:""},v.prototype.render=function(){var e=this,i=e.config,l=i.theme?'style="color: '+i.theme+';"':"";i.elem=a(i.elem),parseInt(i.value)!==i.value&&(i.half||(i.value=Math.ceil(i.value)-i.value<.5?Math.ceil(i.value):Math.floor(i.value)));for(var n='<ul class="layui-rate" '+(i.readonly?"readonly":"")+">",u=1;u<=i.length;u++){var r='<li class="layui-inline"><i class="layui-icon '+(u>Math.floor(i.value)?o:s)+'" '+l+"></i></li>";i.half&&parseInt(i.value)!==i.value&&u==Math.ceil(i.value)?n=n+'<li><i class="layui-icon layui-icon-rate-half" '+l+"></i></li>":n+=r}n+="</ul>"+(i.text?'<span class="layui-inline">'+i.value+"星":"")+"</span>";var c=i.elem,f=c.next("."+t);f[0]&&f.remove(),e.elemTemp=a(n),i.span=e.elemTemp.next("span"),i.setText&&i.setText(i.value),c.html(e.elemTemp),c.addClass("layui-inline"),i.readonly||e.action()},v.prototype.setvalue=function(e){var a=this,i=a.config;i.value=e,a.render()},v.prototype.action=function(){var e=this,i=e.config,l=e.elemTemp,n=l.find("i").width();l.children("li").each(function(e){var t=e+1,v=a(this);v.on("click",function(e){if(i.value=t,i.half){var o=e.pageX-a(this).offset().left;o<=n/2&&(i.value=i.value-.5)}i.text&&l.next("span").text(i.value+"星"),i.choose&&i.choose(i.value),i.setText&&i.setText(i.value)}),v.on("mousemove",function(e){if(l.find("i").each(function(){a(this).addClass(o).removeClass(r)}),l.find("i:lt("+t+")").each(function(){a(this).addClass(s).removeClass(f)}),i.half){var c=e.pageX-a(this).offset().left;c<=n/2&&v.children("i").addClass(u).removeClass(s)}}),v.on("mouseleave",function(){l.find("i").each(function(){a(this).addClass(o).removeClass(r)}),l.find("i:lt("+Math.floor(i.value)+")").each(function(){a(this).addClass(s).removeClass(f)}),i.half&&parseInt(i.value)!==i.value&&l.children("li:eq("+Math.floor(i.value)+")").children("i").addClass(u).removeClass(c)})})},v.prototype.events=function(){var e=this;e.config},i.render=function(e){var a=new v(e);return l.call(a)},e(n,i)});
|
||||
;layui.define("jquery",function(e){"use strict";
|
||||
// 获取 layui 的 jQuery 实例
|
||||
var a=layui.jquery,
|
||||
i={config:{},index:layui.rate?layui.rate.index+1e4:0, // 默认配置
|
||||
set:function(e){ // 设置配置项
|
||||
var i=this;
|
||||
return i.config=a.extend({},i.config,e),i
|
||||
},
|
||||
on:function(e,a){ // 监听事件
|
||||
return layui.onevent.call(this,n,e,a)
|
||||
}
|
||||
};
|
||||
|
||||
// 定义局部变量
|
||||
var l=function(){
|
||||
var e=this,a=e.config;
|
||||
return {
|
||||
setvalue:function(a){ // 设置评分值
|
||||
e.setvalue.call(e,a)
|
||||
},
|
||||
config:a
|
||||
}
|
||||
},
|
||||
n="rate", // 定义组件标识符
|
||||
t="layui-rate", // 样式类
|
||||
o="layui-icon-rate", // 未选中的星星图标
|
||||
s="layui-icon-rate-solid", // 选中的完整星星图标
|
||||
u="layui-icon-rate-half", // 半星图标
|
||||
r="layui-icon-rate-solid layui-icon-rate-half", // 完整星和半星
|
||||
c="layui-icon-rate-solid layui-icon-rate", // 完整星图标
|
||||
f="layui-icon-rate layui-icon-rate-half", // 半星图标样式
|
||||
v=function(e){ // 评分控件构造函数
|
||||
var l=this;
|
||||
l.index=++i.index; // 自动递增索引
|
||||
l.config=a.extend({},l.config,i.config,e); // 合并配置项
|
||||
l.render(); // 渲染评分控件
|
||||
};
|
||||
|
||||
v.prototype.config={length:5,text:!1,readonly:!1,half:!1,value:0,theme:""}, // 默认配置
|
||||
v.prototype.render=function(){ // 渲染评分组件
|
||||
var e=this,i=e.config,l=i.theme?'style="color: '+i.theme+';"':""; // 处理主题颜色
|
||||
i.elem=a(i.elem); // 获取元素
|
||||
parseInt(i.value)!==i.value&&(i.half||(i.value=Math.ceil(i.value)-i.value<.5?Math.ceil(i.value):Math.floor(i.value))); // 设置值为整数或半星
|
||||
|
||||
var n='<ul class="layui-rate" '+(i.readonly?"readonly":"")+">"; // 初始化评分组件HTML结构
|
||||
for(var u=1;u<=i.length;u++){
|
||||
var r='<li class="layui-inline"><i class="layui-icon '+(u>Math.floor(i.value)?o:s)+'" '+l+"></i></li>";
|
||||
i.half&&parseInt(i.value)!==i.value&&u==Math.ceil(i.value)?
|
||||
n=n+'<li><i class="layui-icon layui-icon-rate-half" '+l+"></i></li>":n+=r
|
||||
}
|
||||
n+="</ul>"+(i.text?'<span class="layui-inline">'+i.value+"星":"")+"</span>";
|
||||
|
||||
var c=i.elem, f=c.next("."+t);
|
||||
f[0]&&f.remove(); // 移除旧的评分控件
|
||||
e.elemTemp=a(n); // 渲染新的评分控件
|
||||
i.span=e.elemTemp.next("span"); // 获取显示评分值的span
|
||||
i.setText&&i.setText(i.value); // 设置文本
|
||||
c.html(e.elemTemp); // 将评分控件添加到目标元素
|
||||
c.addClass("layui-inline"); // 给元素添加样式
|
||||
i.readonly||e.action(); // 如果不是只读模式,绑定事件
|
||||
};
|
||||
|
||||
v.prototype.setvalue=function(e){ // 设置评分值并重新渲染
|
||||
var a=this,i=a.config;
|
||||
i.value=e;
|
||||
a.render(); // 重新渲染
|
||||
};
|
||||
|
||||
v.prototype.action=function(){ // 处理点击、鼠标悬停和移出事件
|
||||
var e=this,i=e.config,l=e.elemTemp,n=l.find("i").width(); // 获取星星的宽度
|
||||
l.children("li").each(function(e){ // 遍历每个星星
|
||||
var t=e+1,v=a(this);
|
||||
v.on("click",function(e){ // 处理点击事件
|
||||
if(i.value=t,i.half){
|
||||
var o=e.pageX-a(this).offset().left;
|
||||
o<=n/2&&(i.value=i.value-.5) // 半星处理
|
||||
}
|
||||
i.text&&l.next("span").text(i.value+"星"); // 显示星级
|
||||
i.choose&&i.choose(i.value); // 调用用户自定义的选择事件
|
||||
i.setText&&i.setText(i.value); // 设置文本
|
||||
}),
|
||||
v.on("mousemove",function(e){ // 处理鼠标悬停事件
|
||||
if(l.find("i").each(function(){a(this).addClass(o).removeClass(r)}),
|
||||
l.find("i:lt("+t+")").each(function(){a(this).addClass(s).removeClass(f)}),
|
||||
i.half){
|
||||
var c=e.pageX-a(this).offset().left;
|
||||
c<=n/2&&v.children("i").addClass(u).removeClass(s) // 半星高亮
|
||||
}
|
||||
}),
|
||||
v.on("mouseleave",function(){ // 处理鼠标移出事件
|
||||
l.find("i").each(function(){a(this).addClass(o).removeClass(r)});
|
||||
l.find("i:lt("+Math.floor(i.value)+")").each(function(){a(this).addClass(s).removeClass(f)});
|
||||
i.half&&parseInt(i.value)!==i.value&&l.children("li:eq("+Math.floor(i.value)+")").children("i").addClass(u).removeClass(c)
|
||||
})
|
||||
});
|
||||
};
|
||||
|
||||
v.prototype.events=function(){ var e=this;e.config}, // 定义事件
|
||||
i.render=function(e){ // 渲染评分控件并返回实例
|
||||
var a=new v(e);
|
||||
return l.call(a);
|
||||
};
|
||||
|
||||
e(n,i) // 导出模块
|
||||
});
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1,2 +1,179 @@
|
||||
/** layui-v2.5.6 MIT License By https://www.layui.com */
|
||||
;layui.define("jquery",function(e){"use strict";var t=layui.$,i={fixbar:function(e){var i,n,a="layui-fixbar",o="layui-fixbar-top",r=t(document),l=t("body");e=t.extend({showHeight:200},e),e.bar1=e.bar1===!0?"":e.bar1,e.bar2=e.bar2===!0?"":e.bar2,e.bgcolor=e.bgcolor?"background-color:"+e.bgcolor:"";var c=[e.bar1,e.bar2,""],u=t(['<ul class="'+a+'">',e.bar1?'<li class="layui-icon" lay-type="bar1" style="'+e.bgcolor+'">'+c[0]+"</li>":"",e.bar2?'<li class="layui-icon" lay-type="bar2" style="'+e.bgcolor+'">'+c[1]+"</li>":"",'<li class="layui-icon '+o+'" lay-type="top" style="'+e.bgcolor+'">'+c[2]+"</li>","</ul>"].join("")),g=u.find("."+o),s=function(){var t=r.scrollTop();t>=e.showHeight?i||(g.show(),i=1):i&&(g.hide(),i=0)};t("."+a)[0]||("object"==typeof e.css&&u.css(e.css),l.append(u),s(),u.find("li").on("click",function(){var i=t(this),n=i.attr("lay-type");"top"===n&&t("html,body").animate({scrollTop:0},200),e.click&&e.click.call(this,n)}),r.on("scroll",function(){clearTimeout(n),n=setTimeout(function(){s()},100)}))},countdown:function(e,t,i){var n=this,a="function"==typeof t,o=new Date(e).getTime(),r=new Date(!t||a?(new Date).getTime():t).getTime(),l=o-r,c=[Math.floor(l/864e5),Math.floor(l/36e5)%24,Math.floor(l/6e4)%60,Math.floor(l/1e3)%60];a&&(i=t);var u=setTimeout(function(){n.countdown(e,r+1e3,i)},1e3);return i&&i(l>0?c:[0,0,0,0],t,u),l<=0&&clearTimeout(u),u},timeAgo:function(e,t){var i=this,n=[[],[]],a=(new Date).getTime()-new Date(e).getTime();return a>26784e5?(a=new Date(e),n[0][0]=i.digit(a.getFullYear(),4),n[0][1]=i.digit(a.getMonth()+1),n[0][2]=i.digit(a.getDate()),t||(n[1][0]=i.digit(a.getHours()),n[1][1]=i.digit(a.getMinutes()),n[1][2]=i.digit(a.getSeconds())),n[0].join("-")+" "+n[1].join(":")):a>=864e5?(a/1e3/60/60/24|0)+"天前":a>=36e5?(a/1e3/60/60|0)+"小时前":a>=18e4?(a/1e3/60|0)+"分钟前":a<0?"未来":"刚刚"},digit:function(e,t){var i="";e=String(e),t=t||2;for(var n=e.length;n<t;n++)i+="0";return e<Math.pow(10,t)?i+(0|e):e},toDateString:function(e,t){var i=this,n=new Date(e||new Date),a=[i.digit(n.getFullYear(),4),i.digit(n.getMonth()+1),i.digit(n.getDate())],o=[i.digit(n.getHours()),i.digit(n.getMinutes()),i.digit(n.getSeconds())];return t=t||"yyyy-MM-dd HH:mm:ss",t.replace(/yyyy/g,a[0]).replace(/MM/g,a[1]).replace(/dd/g,a[2]).replace(/HH/g,o[0]).replace(/mm/g,o[1]).replace(/ss/g,o[2])},escape:function(e){return String(e||"").replace(/&(?!#?[a-zA-Z0-9]+;)/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/'/g,"'").replace(/"/g,""")},event:function(e,n,a){var o=t("body");return a=a||"click",n=i.event[e]=t.extend(!0,i.event[e],n)||{},i.event.UTIL_EVENT_CALLBACK=i.event.UTIL_EVENT_CALLBACK||{},o.off(a,"*["+e+"]",i.event.UTIL_EVENT_CALLBACK[e]),i.event.UTIL_EVENT_CALLBACK[e]=function(){var i=t(this),a=i.attr(e);"function"==typeof n[a]&&n[a].call(this,i)},o.on(a,"*["+e+"]",i.event.UTIL_EVENT_CALLBACK[e]),n}};!function(e,t,i){"$:nomunge";function n(){a=t[l](function(){o.each(function(){var t=e(this),i=t.width(),n=t.height(),a=e.data(this,u);(i!==a.w||n!==a.h)&&t.trigger(c,[a.w=i,a.h=n])}),n()},r[g])}var a,o=e([]),r=e.resize=e.extend(e.resize,{}),l="setTimeout",c="resize",u=c+"-special-event",g="delay",s="throttleWindow";r[g]=250,r[s]=!0,e.event.special[c]={setup:function(){if(!r[s]&&this[l])return!1;var t=e(this);o=o.add(t),e.data(this,u,{w:t.width(),h:t.height()}),1===o.length&&n()},teardown:function(){if(!r[s]&&this[l])return!1;var t=e(this);o=o.not(t),t.removeData(u),o.length||clearTimeout(a)},add:function(t){function n(t,n,o){var r=e(this),l=e.data(this,u)||{};l.w=n!==i?n:r.width(),l.h=o!==i?o:r.height(),a.apply(this,arguments)}if(!r[s]&&this[l])return!1;var a;return e.isFunction(t)?(a=t,n):(a=t.handler,void(t.handler=n))}}}(t,window),e("util",i)});
|
||||
layui.define("jquery", function(e) {
|
||||
"use strict";
|
||||
var t = layui.$, // 引入 jQuery 库
|
||||
i = {
|
||||
// 固定操作栏(侧边固定按钮)
|
||||
fixbar: function(e) {
|
||||
var i, n,
|
||||
a = "layui-fixbar", // 固定按钮的 CSS 类名
|
||||
o = "layui-fixbar-top", // 顶部按钮的 CSS 类名
|
||||
r = t(document), // 获取文档对象
|
||||
l = t("body"); // 获取页面的 body 元素
|
||||
// 配置项默认值
|
||||
e = t.extend({ showHeight: 200 }, e);
|
||||
// 如果没有设置 bar1 和 bar2 的图标,默认使用图标
|
||||
e.bar1 = e.bar1 === !0 ? "" : e.bar1;
|
||||
e.bar2 = e.bar2 === !0 ? "" : e.bar2;
|
||||
// 设置背景颜色样式
|
||||
e.bgcolor = e.bgcolor ? "background-color:" + e.bgcolor : "";
|
||||
|
||||
var c = [e.bar1, e.bar2, ""];
|
||||
// 创建固定操作栏的 HTML 结构
|
||||
var u = t([
|
||||
'<ul class="'+a+'">',
|
||||
e.bar1 ? '<li class="layui-icon" lay-type="bar1" style="'+e.bgcolor+'">'+c[0]+"</li>" : "",
|
||||
e.bar2 ? '<li class="layui-icon" lay-type="bar2" style="'+e.bgcolor+'">'+c[1]+"</li>" : "",
|
||||
'<li class="layui-icon '+o+'" lay-type="top" style="'+e.bgcolor+'">'+c[2]+"</li>",
|
||||
"</ul>"
|
||||
].join(""));
|
||||
|
||||
var g = u.find("."+o);
|
||||
// 滚动事件:当页面滚动到指定高度时,显示操作栏
|
||||
var s = function() {
|
||||
var t = r.scrollTop();
|
||||
t >= e.showHeight ? i || (g.show(), i = 1) : i && (g.hide(), i = 0);
|
||||
};
|
||||
|
||||
// 如果操作栏未渲染,则将其添加到页面
|
||||
t("."+a)[0] || (
|
||||
"object" == typeof e.css && u.css(e.css),
|
||||
l.append(u),
|
||||
s(),
|
||||
// 绑定点击事件
|
||||
u.find("li").on("click", function() {
|
||||
var i = t(this),
|
||||
n = i.attr("lay-type");
|
||||
"top" === n && t("html,body").animate({ scrollTop: 0 }, 200);
|
||||
e.click && e.click.call(this, n);
|
||||
}),
|
||||
r.on("scroll", function() {
|
||||
clearTimeout(n);
|
||||
n = setTimeout(function() {
|
||||
s();
|
||||
}, 100);
|
||||
})
|
||||
);
|
||||
},
|
||||
|
||||
// 倒计时功能
|
||||
countdown: function(e, t, i) {
|
||||
var n = this,
|
||||
a = "function" == typeof t, // 如果 t 是函数
|
||||
o = new Date(e).getTime(), // 目标时间戳
|
||||
r = new Date(!t || a ? (new Date).getTime() : t).getTime(), // 当前时间戳
|
||||
l = o - r, // 计算时间差
|
||||
c = [
|
||||
Math.floor(l / 864e5), // 天数
|
||||
Math.floor(l / 36e5) % 24, // 小时
|
||||
Math.floor(l / 6e4) % 60, // 分钟
|
||||
Math.floor(l / 1e3) % 60 // 秒
|
||||
];
|
||||
// 如果 t 是函数,则执行回调
|
||||
a && (i = t);
|
||||
var u = setTimeout(function() {
|
||||
n.countdown(e, r + 1e3, i);
|
||||
}, 1e3);
|
||||
// 回调函数,传递时间差和时间数组
|
||||
return i && i(l > 0 ? c : [0, 0, 0, 0], t, u),
|
||||
l <= 0 && clearTimeout(u), // 当倒计时结束,清除定时器
|
||||
u;
|
||||
},
|
||||
|
||||
// 将时间格式化为“XX时间前”
|
||||
timeAgo: function(e, t) {
|
||||
var i = this,
|
||||
n = [[], []],
|
||||
a = (new Date).getTime() - new Date(e).getTime(); // 计算当前时间与给定时间的差值
|
||||
if (a > 26784e5) { // 如果时间差超过 31 天,显示完整的时间
|
||||
a = new Date(e);
|
||||
n[0][0] = i.digit(a.getFullYear(), 4);
|
||||
n[0][1] = i.digit(a.getMonth() + 1);
|
||||
n[0][2] = i.digit(a.getDate());
|
||||
t || (n[1][0] = i.digit(a.getHours()), n[1][1] = i.digit(a.getMinutes()), n[1][2] = i.digit(a.getSeconds()));
|
||||
return n[0].join("-") + " " + n[1].join(":");
|
||||
}
|
||||
if (a >= 864e5) return (a / 1e3 / 60 / 60 / 24 | 0) + "天前";
|
||||
if (a >= 36e5) return (a / 1e3 / 60 / 60 | 0) + "小时前";
|
||||
if (a >= 18e4) return (a / 1e3 / 60 | 0) + "分钟前";
|
||||
return a < 0 ? "未来" : "刚刚";
|
||||
},
|
||||
|
||||
// 数字补零
|
||||
digit: function(e, t) {
|
||||
var i = "";
|
||||
e = String(e);
|
||||
t = t || 2;
|
||||
for (var n = e.length; n < t; n++) i += "0";
|
||||
return e < Math.pow(10, t) ? i + (0 | e) : e;
|
||||
},
|
||||
|
||||
// 将时间转为指定格式字符串
|
||||
toDateString: function(e, t) {
|
||||
var i = this,
|
||||
n = new Date(e || new Date),
|
||||
a = [i.digit(n.getFullYear(), 4), i.digit(n.getMonth() + 1), i.digit(n.getDate())],
|
||||
o = [i.digit(n.getHours()), i.digit(n.getMinutes()), i.digit(n.getSeconds())];
|
||||
return t = t || "yyyy-MM-dd HH:mm:ss",
|
||||
t.replace(/yyyy/g, a[0])
|
||||
.replace(/MM/g, a[1])
|
||||
.replace(/dd/g, a[2])
|
||||
.replace(/HH/g, o[0])
|
||||
.replace(/mm/g, o[1])
|
||||
.replace(/ss/g, o[2]);
|
||||
},
|
||||
|
||||
// 转义 HTML 字符
|
||||
escape: function(e) {
|
||||
return String(e || "").replace(/&(?!#?[a-zA-Z0-9]+;)/g, "&")
|
||||
.replace(/</g, "<")
|
||||
.replace(/>/g, ">")
|
||||
.replace(/'/g, "'")
|
||||
.replace(/"/g, """);
|
||||
},
|
||||
|
||||
// 自定义事件绑定
|
||||
event: function(e, n, a) {
|
||||
var o = t("body");
|
||||
return a = a || "click", // 默认事件类型为 "click"
|
||||
n = i.event[e] = t.extend(!0, i.event[e], n) || {},
|
||||
i.event.UTIL_EVENT_CALLBACK = i.event.UTIL_EVENT_CALLBACK || {},
|
||||
o.off(a, "*[" + e + "]", i.event.UTIL_EVENT_CALLBACK[e]),
|
||||
i.event.UTIL_EVENT_CALLBACK[e] = function() {
|
||||
var i = t(this),
|
||||
a = i.attr(e);
|
||||
"function" == typeof n[a] && n[a].call(this, i);
|
||||
},
|
||||
o.on(a, "*[" + e + "]", i.event.UTIL_EVENT_CALLBACK[e]),
|
||||
n;
|
||||
}
|
||||
};
|
||||
|
||||
// 窗口大小变化事件(自适应布局)
|
||||
!function(e, t, i) {
|
||||
"$:nomunge";
|
||||
function n() {
|
||||
a = t[l](function() {
|
||||
o.each(function() {
|
||||
var t = e(this),
|
||||
i = t.width(),
|
||||
n = t.height(),
|
||||
a = e.data(this, u);
|
||||
(i !== a.w || n !== a.h) && t.trigger(c, [a.w = i, a.h = n]);
|
||||
});
|
||||
n();
|
||||
}, r[g]);
|
||||
}
|
||||
var a,
|
||||
o = e([]),
|
||||
r = e.resize = e.extend(e.resize, {}),
|
||||
l = "setTimeout",
|
||||
c = "resize",
|
||||
u = c + "-special-event",
|
||||
g = "delay",
|
||||
s = "throttleWindow";
|
||||
r[g] = 250;
|
||||
r[s] = !0;
|
||||
e.event.special[c] = {
|
||||
setup: function() {
|
||||
if (!r[s] && this[l]) return !1;
|
||||
|
||||
Loading…
Reference in new issue