var

backbone

backboneBackbone.js提供模型(models)、集合(collections)、视图(views)的结构。Models: 是引用程序的核心,也是表示数据,用于绑定键值数据和自定义事件Collectoins:是对Model的一个容器,包含多个模型,并提供一些方法,来访问这些模型,集合附有可枚举函数的丰富APIView:可以在视图中声明时间,在视图中处理集合或者

JavaScript设计模式----装饰者模式

装饰者模式的定义:装饰者(decorator)模式能够在不改变对象自身的基础上,在程序运行期间给对像动态的添加职责。与继承相比,装饰者是一种更轻便灵活的做法。装饰者模式的特点:可以动态的给某个对象添加额外的职责,而不会影响从这个类中派生的其它对象;继承的一些缺点:继承会导致超类和子类之间存在强耦合性,当超类改变时,子类也会随之改变;超类的内部细节对于子类是可见的,继承常常被

实现小小的fullpage

需求背景今天运营给了一个需求,要做个引导页,也就是全屏滚动。考虑到只有3张图,就自己码个吧!说干就干。思路设置一个外层container, 用户的可见区域,也就是全屏container内有3个层次,每个层次大小都跟container一样大小每次滚动时候通过css的transform属性进行偏移,并结合transition过渡一下效果*{margin: 0;padding:

(1/2)Canvas的交互&存为图片-基本篇

前言公司的产品同学看到朋友圈疯传的这场图后。一拍脑袋,决定做个H5版本的来推广一波。需求如下:文字变成可以点击的,而且还要能够变色(闪瞎有木有)中间的姓名换成用户的微信头像点击button后,将canvas的操作结果保存成图片,来现微信长按保存到本地的功能。难点总结:页面元素canvas基本的api画到画布上(要解决显示自适应的问题);如何实现点击canvas,识别点击文字

【源码解析】Vue.js的监听实现

一说到监听,当然就离不了设计模式中鼎鼎大名的观察者模式。举个例子,你家后院着火了,可一定要等到烟雾很大火光很亮你才能发现啊,可是当你安装了一个火灾预警器,当发生火灾就立马能够通知到你了。这就是一个典型的观察者模式。当然也还有一些其他变种,比如发布/订阅(publish/subscribe)模式。我们知道如果要将数据和视图关联起来,在数据变更的时候,同步视图,同理视图变更,数

使用 Nodemailer 发送邮件

Nodemailer 是一个基于Node的邮件服务模块。使用 Nodemailer 完成一个发邮件功能非常简单,只需3步:引入模块创建 transport发送邮件引入模块首先安装 Nodemailernpm install nodemailer引入var mailer = require('nodemailer');创建transport创建 transport 使用 No

再见,重复的你(数组去重)

前言昨天跟在前端好友聊天时,她提到了一个问题:“数组去重你会怎么写?”。想了想,其实有好几种方法,决定在这篇笔记中做一些记录。思路一:双层循环,外层循环元素,内层循环时比较值如果有相同的值则跳过,不相同则push进数组Array.prototype.distinct = function(){var arr = this,result = [],i,j,len = arr.

Form表单和Iframe实现文件上传,页面不跳转

文件上传在不借助第三方的插件的情况下进行文件上传可利用:Form表单FormData对象Form表单是不存在浏览器的兼容性的,同时在js被禁用的情况下也能进行文件的传输,因此可以大胆使用。Form表单提交不同于Ajax,Ajax提交数据还需要利用脚本进行数据的处理,而Form是不需要进行任何数据处理的。使用Form表单提交文件一个非常典型的应用场景就是上传图片,但是页面不刷