js实用代码记录

1 篇文章 0 订阅
1 篇文章 0 订阅

 

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]'
}

另附上收藏的一篇好文 知否前端大佬

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值