摘要:
现如今,TS正在逐渐成为前端OO编程的不二之选,以下是我在学习过程中对抽象类和接口做的横向对比。 1. 抽象类当做父类,被继承。且抽象类的派生类的构造函数中必须调用super();接口可以当做“子类”继承其他类 抽象类派生: 接口继承类: 当类被接口继承时,通常是需要为这个类的子类添加约束。例如下面 阅读全文
摘要:
当前情况,移动端的开发占比越来越高,单指的拖拽触碰等操作是常规需要。特殊的多指操作与手势操作还需另做处理,而且还涉及到兼容性问题。 * 首先是手势操作的参数说明 * 需要用到Math的一个函数: Math.atan2(y, x) 意为:x轴 和 点(x, y)与 (0, 0)连线 逆时针方向形成的夹 阅读全文
摘要:
此文复现的所有兼容性问题均为以下情况: 1. 腾讯X5内核 2. 全屏webview 问题如下: 1. IOS12 中软键盘弹出导致页面顶部截断,并且无法恢复。 解决方法:添加交互事件,调用本地方法,在键盘收起后执行页面回滚操作。 2. 页面中有多个可编辑DIV时,点击IOS系统中软键盘左上方的上下 阅读全文
摘要:
首先此函数是基于大家都知道的Tween动画算法的,在此基础上使用了三中讲到的兼容版动画贞,可以使动画变得更流畅。 1. 首先要记得引入Tween.js 2. 引入mTween.js 3. 调用 * mTwee.js文件如下: (这里的m意为mobile) 调用方法: 阅读全文
摘要:
首先,传统做动画的方式有以下几种: 1. css的transition过度动画 2. css的animation动画 3. 使用setTimeout或setInterval模拟动画贞(js执行机制决定了并非严格意义上的动画贞) 定时器模拟动画又分为 :(1)速度版运动 (2)时间版运动 4.使用re 阅读全文
摘要:
移动端滑屏封装注意事项: 1.touchMove时候方向判断(可以控制在 以x轴位中心正负15度之内为横向滑屏,纵向滑屏同理) 2.上下滑屏与左右滑屏的冲突(判断用户滑动方向后,只做单方向的处理) 3.安卓触摸(例如某个人手指很粗)触发touchMove(记录上一次的手指坐标,每一次move的时候判 阅读全文
摘要:
前言: 大家都知道,在移动端进行操作结点移动时,我们都会使用操作transform来代替top等用以提高性能,必要的时候还可开启3d加速。我们都会使用getComputedStyle来获取结点的最终样式,但使用getComputedStyle来获取transform时我们获取到的是一个矩阵值,而且是 阅读全文
摘要:
最近在忙混合开发,因交互相对复杂,所以也踩了很多坑。在此做一下总结。 1.tap事件的实际应用 在使用tap事件时,老生常谈的肯定是点透问题,大多情况下,在有滑屏交互的页面时,我们会在根节点阻止默认行为以解决事件点透的bug。 阻止默认行为有优点,但也会相对带来一些问题。 优点: (1)解决事件点透 阅读全文
摘要:
最近hin忙,无暇更博,昨天还在加班,今天趁着周末,做一下总结。 跨域应该是前端无法避免的问题,解决跨域的方法,在此不作更多说明。而是从原理上说明在前端工作流中,面对跨域问题的一些解决方案(目前我所了解到的)。在此全部分享给大家。 首先一些是需要后端配合完成的方法: 1.使用jsonp跨域解决 2. 阅读全文
摘要:
最近在官方文档中看到,vue新增了一种插槽机制,叫做作用域插槽。要求的版本是2.1.0+。 首先来说一下:顾名思义,所谓作用域插槽,主要就在作用域,需要注意的是(以下几点看不懂不要紧,配合下面的例子,你会一看就懂): 1. 组件中的slot标签只能有有一个,而这一个slot用于替代组件调用时的多个标 阅读全文
摘要:
队列 队列中我们主要实现两种: 1. 常规队列 2. 优先队列(实际应用中的排队加急情况等) 常规队列的实现方法如下: 常规队列的应用之,队伍匹配(需要node环境): 优先队列中主要增加了权重的比对,实现方法如下: 优先队列的使用方法如下: 栈 栈是一种先进后出的结构,js中使用数组进行模拟 栈的 阅读全文
摘要:
hash散列中需要确定key和value的唯一确定关系。 hash散列便于快速的插入删除和修改,不便于查找最大值等其他操作 以下为字符和数字的hash散列: hash的使用方法: 阅读全文
摘要:
数据结构中的集合,类似于数学中常说的集合,是一类数据的群组。集合与集合之间还存在交集,并集,补集的运算。 ***集合为无序,集合内元素不重复 ***js的set基于数组, 使用SetClass为类名,区别于ES6 集合的实现方法如下: function SetClass () { this.data 阅读全文
摘要:
数据结构中,二叉树的使用频率非常高,这得益于二叉树优秀的性能。 二叉树是非线性的数据结构,用以存储带有层级的数据,其用于查找的删除的性能非常高。 二叉树 数据结构的实现方法如下: 二叉树 数据结构的使用方法如下: 阅读全文
摘要:
1. 每添加一个页面需要在app.json中注册,第一个页面为首页。 2. 例如注册一个welcome页面 3. 每增加新页面后,js文件不能为空,需要调用 Page ({}) 初始化, 同样,页面的json文件也不能为空,应写为 {} 4. 通过在啊app.json里面注册页面,IDE会自动为开发 阅读全文
摘要:
首先需要明确以下几点: 1. js中除了Object.prototype和null之外,每一个对象都有一个原型对象。 2. 获取原型对象: 实例对象通过__proto__,构造函数通过prototype。 3. Object.defineProperty()和Object.assign()之类的函数 阅读全文
摘要:
首先,链表有以下特点: 1. 存储空间不固定,可灵活扩充 2.方便多次的插入和删除,效率较高 单链表 单链表是最常用的链表,其对数据的操作均为单项的,向后查找的。 双向链表 双向链表可以方便地对数据进行向前和向后查找(操作),如播放器正向播放音乐时用户存在上一曲和下一曲的操作需要,此时就用到了双向链 阅读全文
摘要:
* 列表用于存放数据量较少的数据结构* 当数据量较大时,不需要对其进行查找、排序的情况下,使用列表也比较方便。 本数据结构在node环境下运行,需要对node有个基本是了解。 1. listSize: 列表长度 2. pos 当前位置 3. getLength 获取列表的长度 4. toString 阅读全文
摘要:
1. 闲来无事时在网上看一些前辈的博客文章,自己尝试了一下。学习到最重要的一点就是box-shadow的叠加使用,受益非线。先上一下效果图: 其中有以下重要的几点: 1. 蜡烛底座的border-radius的水平圆角与垂直圆角设置,即 border-radius:左上水平 右上水平 右下水平 左下 阅读全文
摘要:
当做混合开发时,总有各种意想不到的酷炫效果的需求等着你。不过这个还好,先备着方便以后用。 先上效果图: 总结一下:此效果的完成基于以下几个关键点: 1.DOM结构,为每个DIV设置旋转后,一次也会影响到内层的结构,也就意为越往内层旋转的角度越大。平分下来只需要给div设置一个36deg的旋转就OK了 阅读全文
摘要:
个人维护的 webpack@latest 多页脚手架2.X已经发布,喜欢请给星,详见: https://github.com/pomelott/webpack-multi-page-cli 在工程化地使用webpack时,公共代码抽离是不可或缺的,4.x版本之后,commonsChunkPlugin 阅读全文
摘要:
ES5中实现异步的常见方式不外乎以下几种: 1. 回调函数 2. 事件驱动 2. 自定义事件(根本上原理同事件驱动相同) 而ES6中的Promise的出现就使得异步变得非常简单。promise中的异步是这样的: * 每当我需要执行一次异步操作的时候,我都需要new一个promise对象 * 每一个异 阅读全文
摘要:
花了差不多一天多的时间,重新撸了一遍webpack4.x的常用配置。 github详细代码地址,如有帮助,请赐我一颗小星星。 https://github.com/pomelott/webpack-multi-page-cli 基本上常用的配置都熟悉了一遍,总体上来讲,为了对parcel进行反击,w 阅读全文
摘要:
svg文件是基于xml的矢量图,而canvas是基于html和js的位图。关于两者的比较,在粗就不赘述了。 1. 首先来上一个svg的基本结构: doctype要引入的是svg文件规范的DTD,svg标签的xmlns表示的是要遵循W3C的svg规范。 2. svg的引入方式 ***可通过img标签引 阅读全文
摘要:
1.js实现队列的数据结构(先进先出) 2. js实现栈(先进后出) ***** 实现拉火车游戏 游戏约定如下: 1.首先给定相同数量的牌 2. 不同玩家轮流出牌 3.当出牌后,两张最近的相同牌之间的所有牌可以被当前玩家获取,获取后放在尾部 4.先出完牌的玩家输 *****定义玩家类 ******* 阅读全文