1,点击目标区域以外隐藏,运用场景:点击遮罩层,弹层关闭。

// 点击目标区域以外隐藏
$(document).on("click", function (event) {
var e = window.event || e;
obj = $(e.srcElement || e.target);
if ($(obj).is(selector)) {
// console.log('内部区域');
// do something
} else {
// console.log('你的点击不在目标区域');
// do something
}
});

2,JS超出显示省略号

function getStrLen(str, len) {
if(!str) return;
var iCount = 0;
var reg = /[^\x00-\xff]/;
var result = "";
for (var i = 0; i < len; i++) {
if (reg.test(str.charAt(i))) {
iCount++
}
result += str.charAt(i);
iCount++
} if (result.length < str.length) {
result += "...";
}
return result
}

3、JS日期加月计算;

/**
* 日期加月计算
* num:要加的月数
* sdate:要计算的日期,日期对象
*/
function addMonth(num,sdate) {
//日期不传默认为当前日期
var d = sdate || new Date();
//当前月份
var oldMonth = d.getMonth();
//当前几号
var oldDay = d.getDate();
//每月多少天,平年
var days = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
//闰年二月为29天
var fullYear = d.getFullYear();
if ((fullYear % 4 == 0 && fullYear % 100 != 0) || fullYear % 400 == 0) {
days[1] = 29;
}
//加月,设置月为:当前月份+要加的月数
d.setMonth(oldMonth + num);
//计算月日
var newDay = d.getDate();
if (oldDay == days[oldMonth]) {
if(newDay != oldDay){
//设置新日期为:新日期的上个月的最后一天
d.setDate(0);
}else{
//设置为当月最后一天
d.setDate(1);
d.setMonth(d.getMonth()+1);
d.setDate(0);
}
}
//输出年月日,月日不足10前面补0
var y = d.getFullYear();
var m = d.getMonth() + 1;
var dd = d.getDate();
if (m < 10) {
m = '0' + m;
}
if (dd < 10) {
dd = '0' + dd;
}
return y + "-" + m + "-" + dd;
}
addMonth(2,new Date("2017-02-28"))
// 2017-04-30

4、一个页面应用加个倒计时

var addTimer = function () {
var list = [],
interval; return function(id, time) {
if (!interval)
interval = setInterval(go, 1000);
list.push({ ele: id, time: time });
} function go() {
for (var i = 0; i < list.length; i++) {
document.getElementById(list[i].ele).innerHTML = getTimerString(list[i].time ? list[i].time -= 1 : 0);
if (!list[i].time)
list.splice(i--, 1);
}
} function getTimerString(time) {
var end = new Date(time);
var now = new Date();
var m = Math.round((end - now) / 1000);
var day = parseInt(m / 24 / 3600);
var hours = parseInt((m % (3600 * 24)) / 3600);
var minutes = parseInt((m % 3600) / 60);
var seconds = m % 60;
return "还有" + day + "天" + hours + "小时" + minutes + "分" + seconds + "秒";
}
}();
// 调用
addTimer(id, timestamp);

5、js实现某年某月某天距离现在有多少天,多少分,多少秒,动态显示!

/**
* @Author Jone
* @DateTime 2019-04-04
* @param {[type]} date [js实现某年某月某天距离现在有多少天,多少分,多少秒,动态显示!]
* @return {[type]} [description]
*/
function aa(date) {
var current = Date();
var seconds = (Date.parse(current) - Date.parse(date)) / 1000;
var days = Math.floor(seconds / (3600 * 24));
seconds = seconds % (3600 * 24);
var hours = Math.floor(seconds / 3600);
seconds = seconds % 3600;
var minutes = Math.floor(seconds / 60);
seconds = seconds % 60;
var formatNumber = n => n.toString()[1] ? n.toString() : '0' + n.toString();
var result = days + '天' + formatNumber(hours) + '小时' + formatNumber(minutes) + '分钟' + formatNumber(seconds) + '秒';
return result;
}
// 调用
setInterval(() => {
console.log(aa(time));
}, 1000)

6、解决buffer中文乱码

let unit8Arr = new Uint8Array(arrayBuffer) ;
let encodedString = String.fromCharCode.apply(null, unit8Arr),
decodedString = decodeURIComponent(escape((encodedString)));//没有这一步中文会乱码
console.log(decodedString);

7、解决移动端页面键盘回收问题

handleBlur = () => {
setTimeout(() => {
const scrollHeight = document.documentElement.scrollTop || document.body.scrollTop || 0;
window.scrollTo(0, Math.max(scrollHeight - 1, 0));
}, 100);
}

  

有用的Javascript,长期更新...的更多相关文章

  1. 项目中解决实际问题的代码片段-javascript方法,Vue方法(长期更新)

    总结项目用到的一些处理方法,用来解决数据处理的一些实际问题,所有方法都可以放在一个公共工具方法里面,实现不限ES5,ES6还有些Vue处理的方法. 都是项目中来的,有代码跟图片展示,长期更新. 1.获 ...

  2. Java代码优化(长期更新)

    前言 2016年3月修改,结合自己的工作和平时学习的体验重新谈一下为什么要进行代码优化.在修改之前,我的说法是这样的: 就像鲸鱼吃虾米一样,也许吃一个两个虾米对于鲸鱼来说作用不大,但是吃的虾米多了,鲸 ...

  3. 一些有用的javascript实例分析(二)

    原文:一些有用的javascript实例分析(二) 5 求出数组中所有数字的和 window.onload = function () { var oBtn = document.getElement ...

  4. Spring MVC & Boot & Cloud 技术教程汇总(长期更新)

    昨天我们发布了Java成神之路上的知识汇总,今天继续. Java成神之路技术整理(长期更新) 以下是Java技术栈微信公众号发布的关于 Spring/ Spring MVC/ Spring Boot/ ...

  5. iOS-工作经验+资料分享(长期更新)

    在此记录工作中的一些经验和技术资料 长期更新 欢迎各位业内朋友指正.交流技术上的问题 0.苹果开发联盟电话 4006 701855 1.轻易不用使用tableViewController,因为改变他自 ...

  6. 一些有用的javascript实例分析(三)

    原文:一些有用的javascript实例分析(三) 10 输入两个数字,比较大小 window.onload = function () { var aInput = document.getElem ...

  7. 一些有用的javascript实例分析(一)

    原文:一些有用的javascript实例分析(一) 本文以http://fgm.cc/learn/链接的实例索引为基础,可参见其实际效果.分析和整理了一些有用的javascript实例,相信对一些初学 ...

  8. 12个非常有用的JavaScript技巧

    在这篇文章中,我将分享12个非常有用的JavaScript技巧.这些技巧可以帮助你减少并优化代码. 1) 使用!!将变量转换成布尔类型 有时,我们需要检查一些变量是否存在,或者它是否具有有效值,从而将 ...

  9. Ubuntu16.04系统美化、常用软件安装等,长期更新

    Ubuntu16.04系统美化.常用软件安装等,长期更新 IT之家啊 18-09-0915:00 因为我个人偏向于玩VPS.服务器之类的东西,所以一般我都是用CentOS.不过对于桌面版的Linux, ...

  10. 有用的JavaScript开发小建议

    这篇文章将向你分享一些不为人知的但很有用的JavaScript小建议,对那些刚涉及使用JavaScript编程语言的初级开发者应该有很大的帮助. 1. 用数组长度截取数组 我们都知道,对象都是通过使用 ...

随机推荐

  1. Spring框架的补充

    1.使用xml文件方式配置bean ——property标签ref属性和ref标签区别 <property name=“bean” ref="myBbean" /> r ...

  2. Java基本程序设计结构

    一.要求: 1.设平面上有一个m×n 的网格,将左下角的网格点标记为(0,0)而右上角的网格点标记为(m,n).某人想从(0,0)出发沿网格线行进到达(m,n),但是在网格点(i,j)处他只能向上行进 ...

  3. 课堂alpha发布

    项目组名:奋斗吧兄弟 今天七组对于各自项目现有的成果进行了alpha发布,下面是我的一些感想. 天天向上团队的连连看游戏: 令我印象最深的是天天向上团队的连连看项目,他们目前能展示给我们的是核心的连连 ...

  4. linux 搭建epel本地库,并定时同步

    1.安装rsyncyum -y install rsync.x86_64 2.同步epel至本地#http://mirrors.ustc.edu.cn/status/ 获取镜像库rsync路径mkdi ...

  5. yii框架 excel导出

    环境: yii框架 basic版 1.下载 PHPexcel  (我用的是PHPExcel-1.8.1) 2.将下载的文件夹 (PHPExcel-1.8.1)放至 vender下  (路径:basic ...

  6. poj 1523 SPF(双连通分量割点模板)

    题目链接:http://poj.org/problem?id=1523 题意:给出无向图的若干条边,求割点以及各个删掉其中一个割点后将图分为几块. 题目分析:割点用tarjan算法求出来,对于每个割点 ...

  7. 根据端口号,利用DOS命令杀死进程

    比如利用DOS命令找出占用8080端口的程序的PID 然后用DOS命令杀死该进程 kill

  8. Round 1 Over

    终于把题目清单上的 \(dp\) 写完了\(hhh\)

  9. BZOJ 1007 水平可见直线 | 计算几何

    BZOJ 1007 水平可见直线 题面 平面直角坐标系上有一些直线,请求出在纵坐标无限大处能看到哪些直线. 题解 将所有直线按照斜率排序(平行的直线只保留最高的直线),维护一个栈,当当前直线与栈顶直线 ...

  10. 51nod 1293 球与切换器 | DP

    51nod 1293 球与切换器 | DP 题面 有N行M列的正方形盒子.每个盒子有三种状态0, -1, +1.球从盒子上边或左边进入盒子,从下边或右边离开盒子.规则: 如果盒子的模式是-1,则进入它 ...