1. 短信倒计时按钮置灰:
var wait = 150;
function countdown(obj, msg) {
obj = $(obj);
if (wait == 0) {
obj.removeAttr("disabled");
obj.val(msg);
wait = 150;
} else {
if (msg == undefined || msg == null) {
msg = obj.val();
}
obj.attr("disabled", "disabled");
obj.val(wait + "秒后重新获取");
wait--;
setTimeout(function () {
countdown(obj, msg)
}, 1000)
}
}
function is_empty(name,type){
if(type == 1){
if($('input[name="'+name+'"]').val() == ''){
return true;
}
}else{
if($(name).val() == ''){
return true;
}
}
return false;
}
/**
* 邮箱格式判断
* @param str
*/
function checkEmail(str){
var reg = /^[a-z0-9]([a-z0-9\\.]*[-_]{0,4}?[a-z0-9-_\\.]+)*@([a-z0-9]*[-_]?[a-z0-9]+)+([\.][\w_-]+){1,5}$/i;
if(reg.test(str)){
return true;
}else{
return false;
}
}
/**
* 手机号码格式判断
* @param tel
* @returns {boolean}
*/
function checkMobile(tel) {
var reg = /(^1[3|4|5|7|8][0-9]{9}$)/;
if (reg.test(tel)) {
return true;
}else{
return false;
};
}
/**
* 固定电话号码判断
* @param tel
* @returns {boolean}
*/
function checkTelphone(tel){
var reg = /^((0\d{2,3})-)(\d{7,8})(-(\d{3,}))?$/;
if(reg.test(tel)){
return true;
}else{
return false;
}
}
2. 从13位时间戳转换格式
function getMyDate(str) {
var oDate = new Date(str),
oYear = oDate.getFullYear(),
oMonth = oDate.getMonth() + 1,
oDay = oDate.getDate(),
oHour = oDate.getHours(),
oMin = oDate.getMinutes(),
oSen = oDate.getSeconds(),
oTime = oYear + '-' + getzf(oMonth) + '-' + getzf(oDay) + ' ' + getzf(oHour) + ':' + getzf(oMin) + ':' + getzf(oSen); // 最后拼接时间
return oTime
}
3. JS开启视频
function init_video(){
var getUserMedia = (navigator.getUserMedia || navigator.webkitGetUserMedia ||navigator.mozGetUserMedia);
getUserMedia.call(navigator,{
video:true,//开启视频
audio:false//关闭语音
},function(localMediaStream){
var video = document.getElementById("video");
video.src = window.URL.createObjectURL(localMediaStream);
video.onloadedmetadata=function(e){
video.play();//播放
}
},function(e){
alert("打开视频出错");
})
}
4. 图片转base64,base64转文件
function getImgToBase64(url,callback){ //将图片转换为Base64
var canvas = document.createElement('canvas'),
ctx = canvas.getContext('2d'),
img = new Image;
img.crossOrigin = 'Anonymous';
img.onload = function(){
canvas.height = img.height;
canvas.width = img.width;
ctx.drawImage(img,0,0);
var dataURL = canvas.toDataURL('image/png');
callback(dataURL);
canvas = null;
};
img.src = url;
}
function dataURLtoFile(dataurl, filename) { //将base64转换为文件
var arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1],
bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n);
while(n--){
u8arr[n] = bstr.charCodeAt(n);
}
return new File([u8arr], filename, {type:mime});
}
//for example
getImgToBase64('img/test.png',function(data){
var myFile = dataURLtoFile(data,'testimgtestimgtestimg');
console.log(myFile);
});
5. 查找数组中最小数值:
var arr = [3,6,12.5,2,9];
var min_num = Math.min.apply( Math, arr );
6. 复制文本到剪切板
function copyit(){
const range = document.createRange();
range.selectNode(document.getElementById('wxh'));
const selection = window.getSelection();
if(selection.rangeCount > 0) selection.removeAllRanges();
selection.addRange(range);
document.execCommand('copy');
}
7. 视频播放控制
var video = document.getElementById("videoPlay");
if (video) {
video.onclick = function () {
if (video.paused) {
video.play();
$(".video_default").hide();
} else {
video.pause();
$(".video_default").show();
}
};
video.addEventListener("ended", function () {
video.currentTime = 0;
$(".video_default").show();
});
}
8. 手机端商品分类,左侧右侧滚动
var arr=[];//保存右侧每个li的原始top位置
$('.product-list li[data-catid]').each(function(){
arr.push($(this).offset().top);
});
var document_height = $(window).height();//窗口可视高度
var list_h = $('.product-list').offset().top;//容器顶部
var h = document_height-list_h - $('.shop-menu').height();//容器高度设置
$('.product-list').height(h);
$('.product-list').css({height:h+'px','overflow-y':'scroll'});//容器滚动
$('#navbar li').on('click',function(){
console.log(this);
$(this).addClass('active').siblings().removeClass('active');
var id = $(this).attr('cat-id');
console.log($('li[data-catid='+id+']').offset().top,list_h);
$('.product-list').animate({scrollTop:$('li[data-catid='+id+']').offset().top + list_h + 50},200);
});
$('.product-list').scroll(function(){
var scroll_top = $(this).scrollTop() + list_h;
try{
arr.forEach(function(v,i){
if(scroll_top - v < 50){
throw i;
}
});
}catch(index){
$('#navbar li[cat-id="'+index+'"]').addClass('active').siblings().removeClass('active');
}
});
9. 判断变量是否数组
function isArray(arr) {
return Object.prototype.toString.call(arr) === '[object Array]'
}
另附上收藏的一篇好文 知否前端大佬