var
JavaScript设计模式----装饰者模式
装饰者模式的定义:装饰者(decorator)模式能够在不改变对象自身的基础上,在程序运行期间给对像动态的添加职责。与继承相比,装饰者是一种更轻便灵活的做法。装饰者模式的特点:可以动态的给某个对象添加额外的职责,而不会影响从这个类中派生的其它对象;继承的一些缺点:继承会导致超类和子类之间存在强耦合性,当超类改变时,子类也会随之改变;超类的内部细节对于子类是可见的,继承常常被
业界
2016年07月18日
实现小小的fullpage
需求背景今天运营给了一个需求,要做个引导页,也就是全屏滚动。考虑到只有3张图,就自己码个吧!说干就干。思路设置一个外层container, 用户的可见区域,也就是全屏container内有3个层次,每个层次大小都跟container一样大小每次滚动时候通过css的transform属性进行偏移,并结合transition过渡一下效果*{margin: 0;padding:
业界
2016年07月18日
(1/2)Canvas的交互&存为图片-基本篇
前言公司的产品同学看到朋友圈疯传的这场图后。一拍脑袋,决定做个H5版本的来推广一波。需求如下:文字变成可以点击的,而且还要能够变色(闪瞎有木有)中间的姓名换成用户的微信头像点击button后,将canvas的操作结果保存成图片,来现微信长按保存到本地的功能。难点总结:页面元素canvas基本的api画到画布上(要解决显示自适应的问题);如何实现点击canvas,识别点击文字
业界
2016年08月04日
【源码解析】Vue.js的监听实现
一说到监听,当然就离不了设计模式中鼎鼎大名的观察者模式。举个例子,你家后院着火了,可一定要等到烟雾很大火光很亮你才能发现啊,可是当你安装了一个火灾预警器,当发生火灾就立马能够通知到你了。这就是一个典型的观察者模式。当然也还有一些其他变种,比如发布/订阅(publish/subscribe)模式。我们知道如果要将数据和视图关联起来,在数据变更的时候,同步视图,同理视图变更,数
业界
2016年05月08日
判断资源并行加载完成的三种办法:计数、Promise及 $.Deferred
方法一:计数比较function loadImg(url, cb) { var img = new Image(); img.src = url; img.onload = cb;}function loadImages(urlArr, afterAllLoadedFunc) { var count = urlArr.length; var l
业界
2016年07月05日
使用 Nodemailer 发送邮件
Nodemailer 是一个基于Node的邮件服务模块。使用 Nodemailer 完成一个发邮件功能非常简单,只需3步:引入模块创建 transport发送邮件引入模块首先安装 Nodemailernpm install nodemailer引入var mailer = require('nodemailer');创建transport创建 transport 使用 No
业界
2016年07月12日
再见,重复的你(数组去重)
前言昨天跟在前端好友聊天时,她提到了一个问题:“数组去重你会怎么写?”。想了想,其实有好几种方法,决定在这篇笔记中做一些记录。思路一:双层循环,外层循环元素,内层循环时比较值如果有相同的值则跳过,不相同则push进数组Array.prototype.distinct = function(){var arr = this,result = [],i,j,len = arr.
业界
2016年05月13日
Form表单和Iframe实现文件上传,页面不跳转
文件上传在不借助第三方的插件的情况下进行文件上传可利用:Form表单FormData对象Form表单是不存在浏览器的兼容性的,同时在js被禁用的情况下也能进行文件的传输,因此可以大胆使用。Form表单提交不同于Ajax,Ajax提交数据还需要利用脚本进行数据的处理,而Form是不需要进行任何数据处理的。使用Form表单提交文件一个非常典型的应用场景就是上传图片,但是页面不刷
业界
2016年07月11日
将json字符串转化为json对象(需要引入json2.js框架)[转]
字符串转对象(strJSON代表json字符串)
var obj = eval(strJSON);var obj = strJSON.parseJSON(); var obj = JSON.parse(strJSON); json对象转字符串(obj代表json对象)var str = obj.toJSONString(); var str = JSON.stringify
业界
2016年07月08日
