1,点击目标区域之外隐藏,运用场景:点击遮罩层,弹层关闭。 javascript
// 点击目标区域之外隐藏 $(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超出显示省略号java
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 }
三、JS日期加月计算;orm
/** * 日期加月计算 * 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
四、一个页面应用加个倒计时对象
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);
五、js实现某年某月某天距离如今有多少天,多少分,多少秒,动态显示!blog
/** * @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)