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. 转 C#高性能Socket服务器SocketAsyncEventArgs的实现(IOCP)

    原创性申明 本文作者:小竹zz  博客地址:http://blog.csdn.net/zhujunxxxxx/article/details/43573879转载请注明出处引言 我一直在探寻一个高性能 ...

  2. Beta阶段团队项目开发篇章1

    例会时间:2016.12.1 例会照片: 个人工作: 任务分配: 组员 任务内容 李文涛 编写并发布调查问卷 姬索肇 审核并传播调查问卷 韩慧敏 审核并传播调查问卷 任务截止时间 2016.12.4 ...

  3. 软工网络15团队作业4——敏捷冲刺日志的集合贴(Alpha阶段)

    Alpha阶段 第 1 篇 Scrum 冲刺博客 第 2 篇 Scrum 冲刺博客 第 3 篇 Scrum 冲刺博客 第 4 篇 Scrum 冲刺博客 第 5 篇 Scrum 冲刺博客 第 6 篇 S ...

  4. 【第十周】psp

    代码累计 300+575+475+353+620+703=2926 随笔字数 1700+3000+3785+4210+4333+3032=20727 知识点 机器学习,支持向量机 数据库技术 Acm刷 ...

  5. apache DBUtils 使用例子demo

    转自:http://blog.csdn.net/earbao/article/details/44901061 apache DBUtils是java编程中的数据库操作实用工具,小巧简单实用, 1.对 ...

  6. php SPL标准库iterator和ArrayAccess的学习

    最近在补充学习php基础的时候看到了spl的介绍,学习了一下iterator和arrayAccess的使用,iterator主要是对象的迭代,一般可以用在容器里面,或者工厂模式里面,最常见的应用场景就 ...

  7. [转帖]Ubuntu 安装VNC的一个方法

    来源: https://blog.csdn.net/CSDN_duomaomao/article/details/75270271 Ubuntu 16.04 LTS 安装VNC,在百度和谷歌找了很多教 ...

  8. 【php】new static的用法

    在一个类中,常见的是new self()操作,代表返回自身类的实例. 当父类中存在方法,然后每个子类继承于父类,调用这个方法会返回自身的实例化对象, <?php class A { functi ...

  9. centos7防火墙操作

    启动: systemctl start firewalld 关闭: systemctl stop firewalld 查看状态: systemctl status firewalld 开机禁用 : s ...

  10. Hibernate 注解之 @Temporal

    因为数据库中有个 Date类型的数据,在从数据库中获取数据[就是getXxx方法,当然,自动装配的时候可以直接写在字段上,但也只是针对getXxx方法,不会自动赋值]的时候可以利用这个 @Tempor ...