// 监听滚动,用于列表页向下加载---------------------------------
function loadmore(callback) {
$(window).scroll(function () {
var scrollTop = $(this).scrollTop(); //滚动条距离顶部的高度
var scrollHeight = $(document).height(); //当前页面的总高度
var clientHeight = $(this).height(); //当前可视的页面高度
//距离顶部+当前高度 >=文档总高度 即代表滑动到底部
if (scrollTop + clientHeight >= scrollHeight - 200) {
callback && callback()
}
});
}
// toast弱提示 提示框--------------------------------------
function toast(config) {
var mask = document.getElementById("toast_mask");
var func = config.func;
if (!mask) {
mask = document.createElement("div");
mask.id = "toast_mask";
mask.className = "toast_mask f26"; mask.innerHTML = '<div class="toast_box" id="toast_box">' +
'<div class="tips_content" id="toast_info">' + config.msg + '</div>' +
'</div>';
document.body.appendChild(mask);
} else {
mask.style.display = "flex";
}
//延时消失
setTimeout(() => {
mask.style.display = "none";
func && func();
}, config.duration || 3000)
//点击时消失
mask.onclick = () => {
mask.style.display = "none"
}
document.getElementById("toast_info").innerText = config.msg;
}
//过滤数组重复项---------------------------------------------------------------
let getNo_list = () => {
var arr = [1, 2, 3, 1, 3, 4, 5, 5];
var resultArr = [];
for (i = 0; i < arr.length; i++) {
for (j = 0; j < resultArr.length; j++) {
if (resultArr[j] == arr[i]) {
break;
}
}
if (j == resultArr.length) {
resultArr[resultArr.length] = arr[i];
}
}
console.log(resultArr); //1,2,3,4,5
}
//数组排序 从小到大---------------------------------------------------------
let list_isBig = (arr) => {
for (var j = 0; j < arr.length - 1; j++) {
//两两比较,如果前一个比后一个大,则交换位置。
for (var i = 0; i < arr.length - 1 - j; i++) {
if (arr[i] > arr[i + 1]) {
var temp = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = temp;
}
}
}
return arr
}
//获取json长度----------------------------------------------------------
let getJsonObjLength = (jsonObj) => {
var Length = 0;
for (var item in jsonObj) {
Length++;
}
return Length;
}
//传入一个开始时间('2019','1')返回一个时间戳区间
let computeTime = (year, month) => {
return [
// new Date(year, month - 1, 1).getTime(),
// new Date(year, month, 0).getTime() + (24 * 60 * 60 * 1000 - 1000) 注释的和非注释都可用
new Date(year, month - 1, 1).getTime() / 1000,
new Date(year, month, 1).getTime() / 1000 - 1
]
}
//传入时间戳,第二个参数是格式,也可不传
let parseTime = (time, pattern) => {
if (!time) {
return null
}
const format = pattern || '{y}-{m}-{d} {h}:{i}:{s}'
let date
if (typeof time === 'object') {
date = time
} else {
if ((typeof time === 'string') && (/^[0-9]+$/.test(time))) {
time = parseInt(time)
}
if ((typeof time === 'number') && (time.toString().length === 10)) {
time = time * 1000
}
date = new Date(time)
}
const formatObj = {
y: date.getFullYear(),
m: date.getMonth() + 1,
d: date.getDate(),
h: date.getHours(),
i: date.getMinutes(),
s: date.getSeconds(),
a: date.getDay()
}
const time_str = format.replace(/{(y|m|d|h|i|s|a)+}/g, (result, key) => {
let value = formatObj[key]
// Note: getDay() returns 0 on Sunday
if (key === 'a') {
return ['日', '一', '二', '三', '四', '五', '六'][value]
}
if (result.length > 0 && value < 10) {
value = '0' + value
}
return value || 0
})
return time_str
}
// 复制
function copy(item) {
if (isIosorAn() == "ios") {
is_iosCopy(item)
} else {
var text = document.createElement("input");
text.id = "sharecopy";
text.value = item;
text.style.position = "fixed";
text.style.top = "-10000px";
text.readOnly = false;
document.body.appendChild(text);
text.select();
var copys = document.execCommand("copy");
text.blur();
text.remove();
if (copys) {
toast({
msg: "复制成功"
})
} else {
toast({
msg: "复制失败"
})
}
}
} function is_iosCopy(item) {
var el = document.createElement('input');
el.value = item
el.style.opacity = '0';
document.body.prepend(el);
el.type = "text"
var editable = el.contentEditable;
var readOnly = el.readOnly;
el.contentEditable = true;
el.readOnly = false;
var range = document.createRange();
range.selectNodeContents(el);
var sel = window.getSelection();
sel.removeAllRanges();
sel.addRange(range);
el.setSelectionRange(0, 999999);
el.contentEditable = editable;
el.readOnly = readOnly;
var ret = document.execCommand('copy');
el.blur();
el.remove()
if (ret) {
toast({
msg: "复制成功"
})
} else {
toast({
msg: "复制失败"
})
}
} function isIosorAn() {
var equipmentType = "";
var agent = navigator.userAgent.toLowerCase();
var android = agent.indexOf("android");
var iphone = agent.indexOf("iphone");
var ipad = agent.indexOf("ipad");
if (android != -1) {
equipmentType = "android";
}
if (iphone != -1 || ipad != -1) {
equipmentType = "ios";
}
return equipmentType;
}

js常用 方法 封装的更多相关文章

  1. 自动化测试中执行JS脚本方法封装

    执行JS脚本方法封装: class JavaScript(Base): def execute_javascript(self, js): """执行 JavaScrip ...

  2. js常用的封装函数

    1.使用childNodes获取元素的元素节点 //使用childNodes获取元素节点 function cNodes(obj){ var arr=new Array(); for(var i=0; ...

  3. 常用js方法封装

    常用js方法封装 var myJs = { /* * 格式化日期 * @param dt 日期对象 * @returns {string} 返回值是格式化的字符串日期 */ getDates: fun ...

  4. 第60天:js常用访问CSS属性的方法

    一. js 常用访问CSS 属性的方法 我们访问得到css 属性,比较常用的有两种: 1. 利用点语法  box.style.width      box.style.top     点语法可以得到 ...

  5. js实现第一次打开网页弹出指定窗口(常用功能封装很好用)

    js实现第一次打开网页弹出指定窗口(常用功能封装很好用) 一.总结 1.常用功能封装:之前封装的cookie的操作函数非常好用,我自己也可以这么搞 二.js实现第一次打开网页弹出指定窗口 练习1:第一 ...

  6. C#常用字符串加解密方法封装

    C#中常用的字符串加密.解密方法封装,包含只加密但不解密的方法.收藏起来备用. //方法一 //须添加对System.Web的引用 //using System.Web.Security; /// & ...

  7. 【转】第7篇:Xilium CefGlue 关于 CLR Object 与 JS 交互类库封装报告:全自动注册与反射方法分析

    作者: 牛A与牛C之间 时间: 2013-12-12 分类: 技术文章 | 2条评论 | 编辑文章 主页 » 技术文章 » 第7篇:Xilium CefGlue 关于 CLR Object 与 JS ...

  8. 【转】第6篇:Xilium CefGlue 关于 CLR Object 与 JS 交互类库封装报告:自动注册JS脚本+自动反射方法分析

    作者: 牛A与牛C之间 时间: 2013-11-21 分类: 技术文章 | 暂无评论 | 编辑文章 主页 » 技术文章 » 第6篇:Xilium CefGlue 关于 CLR Object 与 JS ...

  9. 【转】第5篇:Xilium CefGlue 关于 CLR Object 与 JS 交互类库封装报告:自动注册JS脚本+委托回调方法分析

    作者: 牛A与牛C之间 时间: 2013-11-19 分类: 技术文章 | 暂无评论 | 编辑文章 主页 » 技术文章 » 第5篇:Xilium CefGlue 关于 CLR Object 与 JS ...

随机推荐

  1. 可运行的Java RMI示例和踩坑总结

    简述 资料参考: https://docs.oracle.com/javase/tutorial/rmi/overview.html https://blog.csdn.net/bigtree_372 ...

  2. 2019 ICPC 南京网络赛 F Greedy Sequence

    You're given a permutation aa of length nn (1 \le n \le 10^51≤n≤105). For each i \in [1,n]i∈[1,n], c ...

  3. python-函数变量与方法公有、私有整理

    关于函数与方法的区别: 函数: def funname(): 括号里面可以有形参,也可以没有,为空 在函数里面的参数整理: 方法: def funcname(self): 括号里面必须有个self,因 ...

  4. vue element select多选回显

    我们经常在使用 Element组件里面的 select多选 场景:添加账号的时候需要选择可见分公司(分公司为多选),添加成功之后可以编辑,需要回显添加时所提交的分公司 代码如下: 多选框: data( ...

  5. HashMap 底层探索

    其实HashMap就是一个Node数组,只是这个数组很奇怪它的每一个Node节点都有自己的下一个Node;这个是hashMap的Node的源码: static class Node<K,V> ...

  6. js上传文件过大导致上传失败原因以及解决办法

    背景:项目需要用到上传视频功能,由于视频有知识产权,要求必须上传到自己的服务器上不允许用第三方视频网站接口上传,于是一开始开始用的是input type=file去上传,小的视频上传没有问题,上传将近 ...

  7. 你真的知道C语言里extern "C" 的作用吗?

    经常在C语言的头文件中看到下面的代码: #ifdef __cplusplus extern "C" { #endif // all of your legacy C code he ...

  8. Java元注解@Retention规则

    @Retention是java当中的一个元注解,该元注解通常都是用于对软件的测试 1.适用方式:     @Retention(RetentionPolicy.RUNTIME)     @interf ...

  9. Sentinel源码解析二(Slot总览)

    写在前面 本文继续来分析Sentinel的源码,上篇文章对Sentinel的调用过程做了深入分析,主要涉及到了两个概念:插槽链和Node节点.那么接下来我们就根据插槽链的调用关系来依次分析每个插槽(s ...

  10. vue中mixins的使用方法和注意点(详2)(异步请求的情况)

    当混合里面包含异步请求函数,而我们又需要在组件中使用异步请求函数的返回值时,我们会取不到此返回值,如下: mixin中 组件中 控制台 解决方案:不要返回结果而是直接返回异步函数 mixin中 组件中 ...