H5_js方法记录

H5页面常用方法js
键值对的循环

var obj = { k1: 1, k2: 2 }
for (var key in obj) {
  //遍历键值对
  console.log(key)
  console.log(obj[key])
  console.log(key + ':' + obj[key])
}

//h5唤起地图导航,在H5页面中跳转到地图App,或者在本地App中加载的H5页面跳转到地图App,唤起App进行导航;
1、腾讯地图:
调用方式: http://apis.map.qq.com/uri/v1/marker?marker=coord:lat,lng;addr:address
其中lat、lng、address分别为经纬度和详细地址三个参数,
腾讯地图api:https://lbs.qq.com/uri_v1/guide.html

2、高德地图:
调用方式: http://uri.amap.com/marker?position=lng,lat&name=address&coordinate=gaode&callnative=1
其中lat、lng、address分别为经纬度和详细地址三个参数,
高德开放平台:https://lbs.amap.com/api/uri-api/gettingstarted
3、百度地图:
调用方式:http://api.map.baidu.com/marker?location=lat,lng&title=address&content=所在位置的简介&output=html
其中lat、lng、address分别为经纬度和详细地址三个参数,content可以和详细地址一样
百度地图api: http://lbsyun.baidu.com/index.php?title=uri/api/web#service-page-anchor2  

苹果手机:点击导航按钮后进入百度地图app,如果手机没有安装的话,就跳转到AppStore 安装
https://blog.csdn.net/Delegate_M/article/details/51210158 

时间获取

//当前日期
function getMonthYestdy(date) {
  var strYear = date.getFullYear()
  var strDay = date.getDate()
  var strMonth = date.getMonth() + 1
  if (strMonth < 10) {
    strMonth = '0' + strMonth
  }
  if (strDay < 10) {
    strDay = '0' + strDay
  }
  endDate = strYear + '-' + strMonth + '-' + strDay
  return endDate
}
getMonthYestdy(new Date())//当前时间2011-11-11

之前时间

GetPreMonthDay(getMonthYestdy(new Date()), -1)//2011-12-11
/**
 * JavaScript 获取几个月前
 * @params data是当前时间
 * @params monthNum 可以传负数,表示当前日期往后几个月
 *
 */
function GetPreMonthDay(date, monthNum) {
  // console.log(date-180);
  var dateArr = date.split('-')
  var year = dateArr[0] //获取当前日期的年份
  var month = dateArr[1] //获取当前日期的月份
  var day = dateArr[2] //获取当前日期的日
  var days = new Date(year, month, 0)
  days = days.getDate() //获取当前日期中月的天数
  var year2 = year
  var month2 = parseInt(month) - monthNum
  if (month2 <= 0) {
    year2 = parseInt(year2) - parseInt(month2 / 12 == 0 ? 1 : parseInt(month2) / 12)
    month2 = 12 - (Math.abs(month2) % 12)
  }
  // var day2 = parseInt(day) + 1;
  var day2 = parseInt(day)
  var days2 = new Date(year2, month2, 0)
  days2 = days2.getDate()
  if (day2 > days2) {
    //day2 = days2;
    day2 = 01
    month2 = parseInt(month2)
  }
  if (month2 < 10) {
    month2 = '0' + month2
  }
  if (parseInt(month) < monthNum) {
    year2 = parseInt(year2) - 1
  }
  if (day2 < 10) {
    day2 = '0' + day2
  }
  if (month2 > 12) {
    //当monthNum为负数时,
    year2 = parseInt(year2) + 1 //年+1
    if (month2 - 12 < 10) {
      //月
      month2 = '0' + (month2 - 12)
    } else {
      month2 = month2 - 12
    }
  }
  var t2 = year2 + '-' + month2 + '-' + day2
  return t2
}
/*gm字体函数gm*/
setHtml();
window.addEventListener('resize', function() {
    setHtml();
});
function setHtml() {
	 var width = document.documentElement.clientWidth;
	if(width<750){
		document.getElementsByTagName("html")[0].setAttribute('style', 'font-size: '+width/750*100+'px !important');
	}else{
		document.getElementsByTagName("html")[0].setAttribute('style', 'font-size:100px !important');
	}
}
$(function(){
	//自定义tap事件
	$(document).on("touchstart", function(e) {
	    if(!$(e.target).hasClass("disable")) $(e.target).data("isMoved", 0);
	});
	$(document).on("touchmove", function(e) {
	    if(!$(e.target).hasClass("disable")) $(e.target).data("isMoved", 1);
	});
	$(document).on("touchend", function(e) {
	    if(!$(e.target).hasClass("disable") && $(e.target).data("isMoved") == 0) $(e.target).trigger("tap");
	});
});
//调用js的方法
navClass.bind('点击对象','添加class','显示的div');
//封装的js方法
var navClass={
	bind:function(obj,evt,mesobj){
		//点击切换样式和内容点击对象,添加class名称,对应显示的div
		$(mesobj).css("display","none");
		$(obj).on("tap",function(){
			var index=$(this).index();
			$(this).addClass(evt).siblings().removeClass(evt);
			$(mesobj).eq(index).addClass('disblock').siblings().removeClass('disblock'); 
		});
	},
	clearInput:function(obj,pobj,evt){
		//清空input中的内容(编辑地址)点击对象,找到该对象的父级,找到对应情况的元素
		$(obj).on("tap",function(){
			$(this).parents(pobj).find(evt).val("");
			$(this).parents(pobj).find(evt).focus();
		});
	},
	evalList:function(obj,evt,addnum){
		//星星评价系统包含星星的div,每个星星的class,将结果输入到的div
		var arr = ["1分","2分","3分","4分","5分"];
		var num = -1;
		$(evt).mouseover(function(){
			var thisL = $(this).index();
			for(var i = 0;i < thisL;i++){
				$(evt).eq(i).addClass('checked');
			}
			for(var i = thisL; i < 5;i++){
				$(evt).eq(i).removeClass('checked');
			}
			$(this).addClass('checked');
		})
		$(evt).mouseout(function(){
			var thisL = $(this).index();
			for(var i = thisL; i < 5;i++){
				$(evt).eq(i).removeClass('checked');
			}
		})
		$(obj).mouseout(function(){
			
			for(var i = 0; i < num;i++){
				$(evt).eq(i).addClass('checked');
			}
		})
	  $(evt).click(function(){
			var thisL = $(this).index();
			$(addnum).html(arr[thisL]);
			$(this).addClass('checked');
			num = thisL+1;
			console.log(num);
		});
	},
	deteleList:function(obj,detebtn,checkbtn,listmain,objmain){
		//swiperLeft,sweiperRight左右滑动时间
		//删除列表效果划过一个列表,删除按钮,选中按钮,内容主体,所在父级元素
		$(document).on('swipeLeft',obj,function(){
 			$(detebtn).hide();
		    $(detebtn, this).css("display","block");
		    $(checkbtn).show();
		    $(checkbtn, this).hide();
		});
		$(document).on('swipeRight',obj,function(){
 			$(detebtn).hide();
		    $(checkbtn).show();
		});
		$(document).on('tap',detebtn,function(){
			$(this).parent().parent(objmain).remove();
		});
		$(document).on("tap",listmain,function(){
	      	$(this).parent(objmain).find(detebtn).hide();
	      	$(this).parent(objmain).find(checkbtn).show();
	    });	  
	},
	countDown:function(t){
		//倒计时24小时调用的方法,传入t是倒计时的时间
		var counttimes=setInterval(function(){
			if(t>0){
			var d = parseInt(t/3600/24);
			if(d<10){
				d="0"+d;	
			}
			var h = parseInt((t%(3600*24))/3600);
			if(h<10){
				h="0"+h;	
			}
			var m = parseInt((t%(3600*24))%3600/60);
			if(m<10){
				m="0"+m;	
			}
			var s = parseInt((t%(3600*24))%60);
			if(s<10){
				s="0"+s;	
			}
			//将判断好的内容赋值到页面中
			var ttext="距离安装:";
			var day=(d=="00")?"":'<span>'+d+' </span>天 ';
			var hour=(h=="00")?"":'<span>'+ h+' </span> 时 ';
			var minute=(m=="00")?"":'<span>'+m+' </span> 分 ';
			var second=(s=="00")?"":'<span>'+s+' </span> 秒';
			$(".il_surplus").html(ttext+day+hour+minute+second);
			t=t-1;
			}else{
				$(".il_surplus").html("<span class=\"red\">已超时</span>");
				clearInterval(counttimes);
			}
		},1000) 
	},navScroll:function(obj,nav,child,screenbox,num){
		//判断导航的宽度,让导航可以滚动,obj放所有导航的div,nav获取到导航标签,child导航标签的类型
		//默认显示3个,多了滚动,少了导航的宽度自动变
		function navscroll(){
			var navindex=$(obj).find(child).length;
			//var screenwidth=document.documentElement.clientWidth;
			var screenwidth=$(screenbox).width();
			var navwidth=screenwidth/num*navindex+"px";
			$(obj).css("width",navwidth);
			$(nav).css("width",screenwidth/num);
			if(navindex<num){
				$(nav).css("width",screenwidth/navindex-1);
				$(obj).css("width","100%");
			}
		}
		navscroll();
		$(window).resize(function(){
			navscroll();
		})
	},
	boxScroll:function(obj,nav,child,screenbox,num,last,next){
		//crm首页待办内容
		//判断导航的宽度,让导航可以滚动,obj放所有导航的div,nav获取到导航标签,child导航标签的类型
		//screenbox放滚动内容的box,向前按钮,向后按钮
		//默认显示3个,多了滚动,少了导航的宽度自动变
		function navscroll(){
			var navindex=$(obj).find(child).length;
			//var screenwidth=document.documentElement.clientWidth;
			var screenwidth=$(screenbox).width();
			var navwidth=screenwidth/num*navindex+"px";
			$(obj).css("width",navwidth);
			$(nav).css("width",screenwidth/num);
			if(navindex<num){
				$(nav).css("width",screenwidth/navindex-1);
				$(obj).css("width","100%");
			}
			$(last).hide();
			$(screenbox).scroll(function() {
				var leftScrollNum = $(screenbox).scrollLeft();
				//console.log(screenwidth/num*navindex-screenwidth)
				if(leftScrollNum == 0){
					$(last).hide();
					$(next).show();
				}else if(leftScrollNum>screenwidth/num*navindex-screenwidth-30){
					$(next).hide();
					$(last).show();
				}else{
					//console.log(leftScrollNum)
					$(last).show();
					$(next).show();
				}
			});
			
		}
		navscroll();
		$(window).resize(function(){
			navscroll();
		})
	},
	stepScroll:function(obj,nav,child,screenbox,num){
		//判断导航的宽度,让导航可以滚动,obj放所有导航的div,nav获取到导航标签,child导航标签的类型
		//num预留的当前位置的下标
		function navscroll(){
			var navindex=$(obj).find(child).length;
			var screenwidth=$(screenbox).width();
			var navwidth = 5;
			$(nav).each(function(){
				navwidth+=$(this).width();
			});
			$(obj).css("width",navwidth+"px");
			if ($(".cur").length != 0) {
				var leftLength = $(".cur:last").offset().left - 10;
				$(screenbox).scrollLeft(leftLength);
			}
			/*var leftNum =0;
			for (var i=0;i<num-1;i++){
				leftNum += $(nav).eq(num).width();
				$(screenbox).scrollLeft(leftNum);
			}*/
		}
		navscroll();
		$(window).resize(function(){
			navscroll();
		})
	},
	listScroll:function(obj,nav,child,num){
		//判断导航的宽度,让导航可以滚动,obj放所有导航的div,nav获取到导航标签,child导航标签的类型
		//默认显示3个,多了滚动,少了导航的宽度自动变
		function navscroll(){
			var navindex=$(obj).find(child).length;//下面的子元素个数
			var screenwidth=document.documentElement.clientWidth;//屏幕宽
			var navwidth=screenwidth/num*navindex;//放所有子元素的盒子宽
			var imgwidth=0.02*screenwidth;//子元素的外边距
			$(obj).css("width",(navwidth+imgwidth+"px"));//设置外层盒子宽
			$(nav).css("width",(screenwidth/num-imgwidth));//子元素的宽
		
			if(navindex<num){
				$(nav).css("width",screenwidth/navindex);
			}else if(navindex==num){
				$(obj).css("width",navwidth);
			}
			$(child).css("marginLeft",imgwidth+"px");//设置边距
		}
		navscroll();
		$(window).resize(function(){
			navscroll();
		})
	},
};
//单选,复选,全选
 var checkchoose = {
	//多选
    		init:function(obj,evt){
    			$(obj).click(function(){
    				if($(this).hasClass('on')){
    					$(this).removeClass('on')
    				}else{
    					$(this).addClass('on')
    				}
    			})
    		},
    		//单选
    		bind:function(obj,evt){
    			$(obj).click(function(){
    				if($(this).hasClass('on')){
    					$(this).siblings().removeClass('on');
    				}else{
    					$(this).addClass('on').find(evt).prop("checked","true");
    					$(this).siblings().removeClass('on').find(evt).removeAttr("checked");
    				}
    			})
    		},
    		allchoose:function(obj,evt){
    			$(obj).click(function(){
    				
    			})
    		}
    };

//购物车加减js--gm
function minus(thisObj, index) {
	var num = $(thisObj).parent().find("input").val();
	num = parseInt(num);
	if(num>1){
		num=num-1;
		$(thisObj).parent().find("input").val(num);
		
	}else{
		 alert('提示:最少一件,不能再少了!');
	}
}
function plus(thisObj, index) {
	var num = $(thisObj).parent().find("input").val();
	num = parseInt(num)+1;
	$(thisObj).parent().find("input").val(num);
};	
//倒计时
var countdown=60; 
function settime(val) { 
	if (countdown == 0) { 
		val.removeAttribute("disabled");    
		val.value="获取验证码";
		countdown = 60; 
		val.style.background="transparent";
	} else { 
		val.setAttribute("disabled", true); 
		val.value="重新发送(" + countdown + "s)"; 
		countdown--; 
		val.style.background="#2f5557";
		setTimeout(function() {
		settime(val) 
	},1000);
};
}

页面加载成功之后再执行一次刷新

function myrefresh(){ //加载完页面重新执行一次页面
        url = location.href;
        console.log(url);
        var once = url.split("#");
        if (once[1] != 1) {
            url += "#1";
            self.location.replace(url);
            window.location.reload();
        }
    }
    setTimeout(myrefresh,1000);

延迟加载

 function sleep(numberMillis) {
        var now = new Date();
        var exitTime = now.getTime() + numberMillis;
        while (true) {
            now = new Date();
            if (now.getTime() > exitTime)
                return;
        } }
        sleep(2000);//间隔2s调用

获取前一周的日期的方法

function getDay(num, str) {
  var today = new Date()
  var nowTime = today.getTime()
  var ms = 24 * 3600 * 1000 * num
  today.setTime(parseInt(nowTime + ms))
  var oYear = today.getFullYear()
  var oMoth = (today.getMonth() + 1).toString()
  if (oMoth.length <= 1) oMoth = '0' + oMoth
  var oDay = today.getDate().toString()
  if (oDay.length <= 1) oDay = '0' + oDay
  return oYear + str + oMoth + str + oDay
}

//var yesterday = getDay(-1, '-');		//    -1 代表前一天,-2前两天...
console.log(getDay(-5, '-'), getDay(-4, '-'), getDay(-3, '-'), getDay(-2, '-'), getDay(-1, '-'), getDay(0, '-'))

一个数组分割成多个数组

function arrSize(array, size) {
  //得到的数组按照一定数据分割成多个数组
  let [start, end, result] = [null, null, []]
  for (let i = 0; i < Math.ceil(array.length / size); i++) {
    start = i * size
    end = start + size
    result.push(array.slice(start, end))
  }
  console.log(result)
  return result
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值