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. angularJS1笔记-(18)-$http及用angular实现JSONP跨域访问过程

    官网上的解释为: The $http service is a core AngularJS service that facilitates communication with the remot ...

  2. iOS日期的加减

    NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; NSDateCo ...

  3. PAT 甲级 1010 Radix

    https://pintia.cn/problem-sets/994805342720868352/problems/994805507225665536 Given a pair of positi ...

  4. 【SQLSERVER】动态游标的实现

    方法1: CREATE   TABLE   #tabTmp(id   int)    INSERT   #tabTmp   EXECUTE('SELECT   id   FROM   '+@Table ...

  5. 弱智python小游戏猜数字

    from random import randintnum = randint(0,100)print("Guess what I think:?")bingo = Falsewh ...

  6. <script>document.write(location.href)</script>

    <script>document.write(location.href)</script> 什么意思?

  7. OpenSSL 自签名证书

    通过下面9步,可以轻松生成自签名证书. 1.安装.部署OpenSSL 略 2.创建文件夹(下面通常root文件夹).用来放即将创建的各种证书等.如:I:\Key10.167.219.64 3.在roo ...

  8. winrar 授权破解过期解决

    RAR registration data Federal Agency for Education 1000000 PC usage license UID=b621cca9a84bc5deffbf ...

  9. GDOI2018记录

    ​ 说实话,直到初三暑假升高一的时候,我才开始形成竞赛观.那时才顿觉一年的各个比赛是多么重要. ​ 紧接着我的NOIP就直接爆炸了.这意味着我一年也完蛋了.各种人去WC,然后我留在家里. ​ 那GDO ...

  10. bzoj2961&&bzoj4140 共点圆

    题目描述 在平面直角坐标系中,Wayne需要你完成n次操作,操作只有两种: 1.0 x y.表示在坐标系中加入一个以(x, y)为圆心且过原点的圆. 2.1 x y.表示询问点(x, y)是否在所有已 ...