master
parent
602c093b90
commit
b5efd6960d
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,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;
|
||||
|
||||
File diff suppressed because one or more lines are too long
Loading…
Reference in new issue