- 博客(44)
- 收藏
- 关注
原创 wepy 实现倒计时代码
倒计时组件:<template> <view class='container' >{{couent}}</view></template><script> import wepy from 'wepy'; export default class Daojishi extends wepy.component ...
2019-02-21 09:50:37
992
1
原创 微信小程序解析运动步数时小概率解析出错问题解决
核心接口 wx.login、wx.checkSession、wx.getWeRunData上代码: //获取步数 async getWxStep(){ let that = this; wx.getWeRunData({ success: res => { Utils.wxRequest({ ...
2019-02-16 13:21:04
3430
原创 angular ngOnChange内部for..in报[tslint]error的问题
通过ngOnChange钩子来监听组件属性值变化ngOnchange( name: string ) { for ( let myName in nameList ) { ...... }}ngOnChange内部出现for..in..语句时 , 会出现一个错误这个错误并不会影响程序的正常执行 , 只是在编辑器内部显示出来引起这个错误的原因 : 我们先...
2018-07-26 14:36:11
974
原创 angular-cli创建项目无法启动的问题
angular更新到6.0之后 , cli也随之更新到6.0版本正常的用cli命令创建项目ng new domecnpm installng serve发现项目启动不了,一直卡在95%解决办法:(多种)1 : 删掉安装好的node_module文件夹,用npm install重新安装2 : 回退cli的版本 , 往后退一两个小版本就可以 , 尽量不要用最新的...
2018-07-19 15:17:48
1600
原创 typescript原始数据类型之间微妙的关系
Boolean:使用Boolean构造函数创建的对象不是布尔值let isBoolean: boolean = new Boolean(1); //error 这里返回的是一个Boolean对象Void:let isVoid: void = undefined || null ; //void类型的变量只能赋值为undefined和nullundefined和null:undefined和...
2018-07-12 20:25:48
277
原创 H5微信支付的坑
纯H5调用微信支付有很多需要注意的地方,1.绑定微信支付安全域名: 绑定了安全域名并不是在这个域名下的所有连接都可以唤起微信支付,这里有一个严格的限制,就是绑定的这个域名下的不超过1级子目录的页面才有权限唤起微信支付 举个栗子: 安全域名:www.aaa.com/ www.aaa.com/A.html (可以正常访问) www.aaa.com/index/B.html (没有权限)2.openi...
2018-07-12 20:24:57
1183
原创 type=file上传的图片进行预览
html:<input type="file" onchange="changepic(this)" id="file" accept="image/png, image/jpeg, image/jpg" /><div class="up-img"> <img id="
2018-07-12 14:42:54
631
原创 简单封装移动端长按事件
var timeOutEvent=0;//定时器//开始按function gtouchstart(){ timeOutEvent = setTimeout("longPress()",500);//这里设置定时器,定义长按500毫秒触发长按事件 return false;};//如果在500毫秒内就释放,则取消长按事件,此时可以执行onclick应该执行的事件funct...
2018-05-31 14:27:27
1103
2
原创 简单实现无限制拦截浏览器的后退事件
//拦截后退事件和控制弹窗var intercept = { //阻止拦截的方法 closeTots: function (a){ if(a) closeCur = false; return closeCur; }, //添加浏览器历史记录 pushH...
2018-05-31 14:26:42
1799
原创 微信链接重定向之后后退两次才能退出当前页面问题解决
需求:微信内多个H5页面分享出去指定到同一链接具体实现方式:纯前端实现多个微信H5页面分享出去指定到同一连接;页面重定向之后发现在微信里点击后退之后,又会重新返回这个页面,必须要连续快速的点击返回才能退出关闭浏览器,这个用户体验就非常不好,我们可以手动给浏览器新加一条空的浏览记录‘#’,然后监控这个#链接,当返回到这个链接的时候,说明用户已经做了后退操作,然后调用微信的
2018-03-27 20:22:59
9637
7
原创 H5页面从QQ分享到微信展示自定义图文
H5页面配置了微信和QQ分享之后,如果直接从QQ分享到微信后,发现之前自定义好的图文链接失效了,title部分显示的是页面上的title标题,文章详情部分变成了链接我们在页面的head里加两个mate标签,就可以解决这个问题<meta name="keywords" content="链接详情描述"><meta name="description" content="链接详情描述...
2018-03-23 11:02:01
1627
原创 纯前端实现多个微信H5页面分享出去指定到同一连接
APP内链H5或者公众号开发无法避免的会涉及到社交平台分享的功能,本篇只讲解有关微信的相关分享:首先解决分享出去后展示自定义图文 注意:微信分享的H5必须要有绑定的公众号或者服务好平台,并且绑定了页面和接口的安全域名第一步:在分享的页面引入微信JSSKD 配置并初始化分享接口:function shareFn(title, linkUrl, desc, imgUrl) {
2018-03-23 10:40:40
8521
2
原创 HTML页面mate标签常用功能汇总
一、语法:二、参数解析:1)name项:常用的选项有Keywords(关键字) ,description(网站内容描述),author(作者),robots(机器人向导)等。2)http-equiv项:可用于代替name项,常用的选项有Expires(期限),Pragma(cache模式),Refresh(刷新),Set-Cookie(cookie设定),Window-target
2018-02-28 20:11:43
3970
原创 js实现图片懒加载
当网页图片比较大的时候,在加载的过程中img还没加载出来的时候是一片空白,影响排版美观,我们可以用一张占位图,当资源图片资源加载完成后再把占位图替换掉:需要加载的资源文件 占位图 var logo = document.getElementById('logo-img'), load = document.getElementById('load-img'
2018-02-22 14:45:03
445
原创 分时函数优化批量渲染DOM的过程
渲染列表类的数据时,往往会做批量渲染DOM的操作,类似通讯录好友列表商品列表之类的数据有可能会很多,几十几百上千条,如果一下子全部渲染出来会导致浏览器卡顿假死或者崩溃,我们可以用分时函数来优化这个过程,一次性渲染一千条数据改为每100毫秒渲染10条数据:var showDom = function (data,fn,num) { var obj, t, len = data.length,...
2018-02-22 14:41:36
574
原创 利用scrolltop实现回到顶部功能遇到的坑
实现一个简单的点击回到顶部 , 就直接写了一个点击事件document.body.scrollTop = 0;测试发现在谷歌浏览器没效果 , 在火狐浏览器可以然后就查询了一下发现谷歌是不支持body元素获取scrollTop 属性的,谷歌下需要用到document.documentElement.scrollTop,在苹果的safari浏览器下只能用window.pageYO
2018-02-22 14:35:33
534
原创 快速解决小数运算误差问题
JavaScript 中所有的数字都只有一种类型,都被当做浮点数,JavaScript 内部会做优化,来区分浮点数组和整数。JavaScript 的数字是双精度的(64位),基于 IEEE 754 标准。由于所有数字都是浮点数,所以这里就会有精度的问题。0.1 + 0.2 ; // 0.300000000000004( 0.1 + 0.2 ) +0.3; // 0.60000000
2018-02-22 14:33:39
2619
原创 canvas绘图中Y轴坐标可能混乱的坑
最近在学canvas绘图 , 实现一个简单的正方形对角线按照正常的画页面逻辑 , 先是给canvas元素设置样式,宽高都为300像素,然后定义画板绘图填充var context = myCanvas.getContext('2d'); context.beginPath(0,0); context.lineWidth = '1'; context.strokeStyle = '
2018-02-22 14:30:56
1365
2
原创 js设计模式之迭代器模式学习笔记--封装简单的数组迭代器
我们封装一个迭代器函数,来实现类似jQuery的 $.each()方法的迭代效果;\var each = function(arr,callbreak){for(var i=0;icallbreak.call(arr[i],i,arr[i]);};};each([1,2,3],function(a,b){ console.log(a,b);});现在我们增加一个
2017-12-18 11:25:24
645
原创 javascript 虚拟代理模式实现图片预加载功能
var src = 'http://pic.962.net/up/2014-4/2014043015463569548.jpg';//需要等待加载的图片链接var myImg = (function () { var img = document.createElement('img');//创建一个img标签,用来放占位图 document.body.appendChil
2017-12-08 15:37:58
405
原创 JavaScript 策略模式封装表单验证库
直接上代码:html>html lang="en">head> meta charset="UTF-8"> title>Titletitle>head>body> form id="form"> p>用户名:input type="text" name="userName" />p> p>密码:input type="pass
2017-12-05 15:06:00
544
原创 js实现简单的图片懒加载功能
当网页图片比较大的时候,在加载的过程中img还没加载出来的时候是一片空白,影响排版美观,我们可以用一张占位图,当资源图片资源加载完成后再把占位图替换掉:需要加载的资源文件占位图 var logo = document.getElementById('logo-img'), load = document.getElementById('load-img')
2017-11-29 13:29:50
320
原创 闭包实现分时函数优化批量渲染DOM的过程
渲染列表类的数据时,往往会做批量渲染DOM的操作,类似通讯录好友列表商品列表之类的数据有可能会很多,几十几百上千条,如果一下子全部渲染出来会导致浏览器卡顿假死或者崩溃,我们可以用分时函数来优化这个过程,一次性渲染一千条数据改为每100毫秒渲染10条数据:var showDom = function (data,fn,num) { var obj, t,
2017-11-28 15:39:54
372
原创 闭包实现函数节流
在一些业务场景中我们可能会用到window.onresize事件或者mousemove等监控类型事件,当用户做出相关操作的时候,会平凡触发相应的函数,有可能每秒会触发几十甚至上百次,如果函数中有一些DOM操作,就会导致浏览器卡顿等现象,很多时候我们根本不需要执行这么多次,这时我们就需要用到函数节流把多余的执行函数请求给过滤掉var throttle = function(fn,time){
2017-11-20 15:37:19
1484
原创 switch case语句踩坑
今天写了一个根据选择的生日自动选择年龄段的功能代码如下:$('.pSetBaseBirth').change(function(){ //选择时间自动计算年龄段 var nowDate = new Date().getTime(),//当前毫秒数 nowyear = $('#birthYear').val(),//选择的年份 nowMon
2017-11-06 11:10:53
4405
2
原创 一个简单的例子,看明白this
这里有一段简单的代码,function obj(){ console.log(this.a);}var fn = {a:123,obj:obj};var a = 321;var fn1 = fn.obj;fn.obj();fn1();大意的人一定会脱口而出这两个函数的执行结果是一样的,其实这两个函数执行的结果是不一样的,虽然他们调用的是同一个方法,但是在
2017-11-01 13:08:22
330
原创 js原型方式自定义弹窗
function confirmAlert(){};confirmAlert.prototype.make = function(title,content,falseTit,falseFn,trueTit,trueFn){ this.content = content; //自定义弹窗的内容 this.title = title || '温馨提示:'; //弹窗tit
2017-09-28 15:32:14
735
原创 js快速获取地址栏参数的方法(实用)
方法一:采用正则表达式获取地址栏参数:( 强烈推荐,既实用又方便!)function GetQueryString(name){ var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)"); var r = window.location.search.substr
2017-09-27 15:40:48
490
原创 常用创建对象的几种方式以及优缺点
1.独立声明模式var fn1 = new Object();fn1.name = '张三';var fn2 = new Object();fn2.name = '李四';优点:创建的每个对象之间互相独立,不会混淆缺点:结构相同的对象不能重用2.工厂模式function factory(name,age,obj){ var o = new Object(); o.
2017-09-07 16:15:40
784
原创 JQuery中$.ajax()方法参数详解
JQuery $.ajax()url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址。type: 要求为String类型的参数,请求方式(post或get)默认为get。注意其他http请求方法,例如put和delete也可以使用,但仅部分浏览器支持。timeout: 要求为Number类型的参数,设置请求超时时间(毫秒)。此设置将覆盖$.aja
2017-09-07 13:55:13
289
原创 JQuery中JSON对象与JSON字符串
首先介绍一下JSON对象,和JSON字符串的区别。JSON对象就是对象 ,是json格式的对象 ,什么是json格式啊 就是 键值对, 键可以是字符串也可以是数字 ,值可以是字符串 也是可以是数值,还可以是数组,例如这样:var person={"name":"tom","sex":"男","age":"24"}//json对象console.log(person.name);
2017-09-07 13:53:45
787
1
原创 服务端签名后上传文件到oss
上传oss流程:客户端(向网站服务器请求签名) =》 网站服务器(服务器返回签名) =》 客户端(将获取到的签名放入URL中发送至oss验证)=》 oss服务器1.表单直传oss优点:流程上—少了一步转发,架构上—走网站服务器,上传量过大的时候,瓶颈在网站服务器,采用表单上传后上传都是直接从客户端发送到oss,上传量过大时,压力在oss上,而不在网站服务器上2.前端需要
2017-09-07 13:49:57
4462
原创 阻止回车提交表单
1.这段代码在input获取焦点的时候,敲回车键会出发改form表单的提交;2. 在有些时候这个需求是是不合理的,比如(登录时要判断用户是否存在/这是另外一个接口,和form表单不是同一个接口/然后再进行form提交);解决方法一:这个时候,当表单获取焦点,敲回车并不会使表单提交;解决方法二:(阻止事件的默认行
2017-09-07 13:42:35
791
原创 HTTP中Get与Post的区别
Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE。URL全称是资源描述符,我们可以这样认为:一个URL地址,它用于描述一个网络上的资源,而HTTP中的GET,POST,PUT,DELETE就对应着对这个资源的查,改,增,删4个操作。到这里,大家应该有个大概的了解了,GET一般用于获取/查询资源信息,而POST一般用于更新资源信息。
2017-09-07 13:40:35
386
原创 setTimeout、setInterval。其第三个参数和this的讨论,超时嵌套和内存泄漏
setTimeout和setInterval函数的第三个参数本来只是定义语言类型,后来在非IE浏览器下支持传递参数,并且在不同浏览器下支持的不同。原来的setTimeout函数定义:var timeoutID = window.setTimeout(func, delay[, lang]);在Chrome和FF下定义被修改:var timeoutID = window.se
2017-09-07 13:39:22
757
原创 js中sort()方法的用法,参数以及排序原理
sort() 方法用于对数组的元素进行排序。语法:arrayObject.sort(sortby);参数sortby可选。规定排序顺序。必须是函数。注:如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较。如果想按照其他标准进行排序,就需要提供比较函数,
2017-09-07 13:38:03
655
原创 服务端配合web端上传视频
一般来说 我们使用阿里云的oss储存,上传文件大多数是在服务端上传,但是有的时候需要另一种上传方式—客户端上传。资料来源:https://doc.oss.aliyuncs.com/#_Toc336676736https://help.aliyun.com/document_detail/31923.html?spm=5176.doc31853.2.4.p8mKx
2017-09-07 13:36:56
2465
原创 原生Js判断当前页面是否是第一次打开
原理是利用浏览器cook来判断,当当前页面不存在cook时就是第一次打开代码: function Cookie(key,value){ this.key=key; if(value!=null) { this.value=escape(value); } this.expiresTime=null; this.do
2017-09-06 10:44:51
4797
原创 ES6中新增数组方法与ES5之间的区别
1.扩展运算符(...)替代ES5 apply()方法:数组合并var arr1=[1 , 2] , arr2=[3,4] ;[...arr1,...arr2];//[1,2,3,4];arr1.push(...arr2);函数返回多个值var obj = fn(num){return num;}var result = new Function(...obj);
2017-08-21 20:14:52
1666
原创 iframe子页面与父页面数据通讯
父页面调用子页面方法:FrameName.window.childMethod();子页面调用父页面方法:parent.window.parentMethod();DOM元素访问获取到页面的window.document对象后,即可访问DOM元素注意事项要确保在iframe加载完成后再进行操作,如果iframe还未加载完成就开始调用里面的方法或变量,会产生错误。判断iframe
2017-08-17 20:06:48
874
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人