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
}