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. yum与rmp

    清理一切缓存[root@geust02 ~]# yum   clean  all  重建元数据[root@geust02 ~]# yum  makecache 查询vim相关的软件包[root@geu ...

  2. 软工网络15团队作业8——Beta阶段敏捷冲刺(Day2)

    提供当天站立式会议照片一张 每个人的工作 1.讨论项目每个成员的昨天进展 赵铭: 根据计划安排,继续学习数据库. 吴慧婷:做Beta阶段的计划,并为界面设计寻找素材,学习界面优化. 陈敏: 根据任务, ...

  3. Delphi控件-复合控件【转】

    复合控件复合控件是Delphi控件中非常重要的一种控件,复合控件就是将两个或两个以上的控件重新组合成一个新的控件.例如TspinEdit.TlabeledEdit.TDBNavigator等就是复合控 ...

  4. 关于Jquery使用中遇到典型问题集锦

    ①$.post("url",{search:1},function(){},"json")请求数据成功就是不执行回调函数? 答:最大可能导致原因为 数据格式不正 ...

  5. Redis(一) 安装

    选择在Linux下安装redis,现在采用虚拟机安装的centos7 进行安装的 1.安装gcc yum install gcc-c++ 2.下载redis安装包,在root目录下执行 wget ht ...

  6. JavaWeb基础【1】—— Tomcat

    此笔记是学习黑马程序员JavaWeb系列视频的课堂笔记. 感谢黑马程序员. 一.Tomcat概述 Tomcat服务器由Apache提供,开源免费.由于Sun和其他公司参与到了Tomcat的开发中,所以 ...

  7. Introduction to One-class Support Vector Machines

    Traditionally, many classification problems try to solve the two or multi-class situation. The goal ...

  8. BZOJ2339 HNOI2011卡农(动态规划+组合数学)

    考虑有序选择各子集,最后除以m!即可.设f[i]为选i个子集的合法方案数. 对f[i]考虑容斥,先只满足所有元素出现次数为偶数.确定前i-1个子集后第i个子集是确定的,那么方案数为A(2n-1,i-1 ...

  9. P2461 [SDOI2008]递归数列

    题目描述 一个由自然数组成的数列按下式定义: 对于i <= k:ai = bi 对于i > k: ai = c1ai-1 + c2ai-2 + ... + ckai-k 其中bj 和 cj ...

  10. Udp广播的发送和接收(iOS + AsyncUdpSocket)下篇

    接上篇C#的Udp广播的发送和接收 http://www.cnblogs.com/JimmyBright/p/4637090.html ios中使用AsyncUdpSocket处理Udp的消息非常方便 ...