js
Greasy_Giant
这个作者很懒,什么都没留下…
展开
-
一种简单的缓冲动画函数实现
0x01 从大到小 335(src) —> 23(dest)dest = dest - Math.abs(src -dest) * ratio0x02 从小到大 35(src) —> 335(dest)dest = dest + Math.abs(src -dest) * ratio0x03 简写dest = dest + (dest -src) * ratio0x04 应用在角度上如果原创 2016-02-12 14:20:34 · 362 阅读 · 0 评论 -
一道JS面试题
function Foo() { getName = function() { //这里没var,因此改变的全局变量上的属性!!! alert(1); }; return this; } Foo.getName = f转载 2016-02-20 12:10:12 · 387 阅读 · 0 评论 -
用jQuery编写图片弹幕评论插件
0x01 前言这是独角兽公社项目的一个小需求,本来呢,是打算用百度图说(效果如下)直接复制黏贴弄上去的,结果居然要申请后才能使用… 没办法,于是乎自己尝试实现一个图片评论弹幕的插件。0x02 代码编写我的思路是用一个wrapper将img包裹起来,然后弹幕元素position:absolute,显示在图片之上。htmlhtml的结构很简单 <div class="img-wrap原创 2016-02-02 13:38:04 · 1430 阅读 · 0 评论 -
ES7中的async函数
0x01最近在拜读阮一峰老师的教程,学习ES6语法,我用babel.js自动将es6、es7的代码转换成es5代码,babel一直工作正常,但在浏览器环境下,Generator函数一直错误:Uncaught ReferenceError: regeneratorRuntime is not defined,github上也有人提问,搞了半天,在代码顶部添加import "babel-polyfill转载 2016-02-05 12:20:12 · 4058 阅读 · 1 评论 -
网页滚动到底部自动加载数据
0x01 前言我之前在不少手机APP和网页上见到滚动加载 的效果,当我们的页面将要滚动到底部时,页面将自动ajax获取数据,并填充至底部,不需要主动刷新,用户浏览起来感觉非常的流畅。0x02 原理监听滚动事件window和DOM元素上面有一个onscroll事件,每当页面滚动时会触发此事件。 绑定window/document/document.body中任意一个的onscroll事件即可。0原创 2016-02-02 15:28:43 · 3004 阅读 · 0 评论 -
Promise的顺序执行
0x00有时候我们希望JS脚本以同步的方式执行,但是在实际情况中,很多操作是异步的,如Ajax请求后端数据,执行一些动画等。刚开始,我使用回调函数的方法,这种方式的缺点很明显,当逻辑复杂时,回调函数嵌套多层,造成callback hell$.get('http://www.a.com',function (data) { //deal data $.get('http://http:原创 2016-02-05 14:57:30 · 7151 阅读 · 0 评论 -
JS动态原型
这种方式将所有信息都封装在了构造函数中,而通过在构造函数中初始化原型(仅在必要的情况下),又保持了同时使用构造函数和原型的优点。换句话说,可以通过检查某个应该存在的方法是否有效,来决定是否需要初始化原型。function Person(name, age, sex) { // attrs this.name = name; this.age = age; this.s转载 2016-02-13 11:33:51 · 378 阅读 · 0 评论 -
页面滚动视差效果的实现
0x01今天在http://materializecss.com/发现一个视差滚动的例子,想自己实现一下视差效果。打开例子0x02思路首先呢,我们可以选择监听scroll和mousewheel事件,说说各自的优缺点。事件监听 scroll 优点:当页面滚动到边界时,不会触发事件。 缺点:需要自己判断鼠标滚动方向。 mousewheel 优点:可以直接知道滚动方向。原创 2016-02-05 14:44:47 · 2504 阅读 · 0 评论 -
用jQuery编写轮播图插件
0x01 前言0x02 代码编写0x03 成果 See the Pen adjwRd by chenchen (@larry011) on CodePen.原创 2016-02-02 14:13:11 · 559 阅读 · 0 评论 -
不用new的方式手动构造JS对象
首先我们先写一个工厂函数function Person(name) { this.name = name}Person.prototype.sex = 'male';Person.prototype.age = 22;一般来说,我们生成Person对象就用 var p1 = new Person('my name')的方式。 其实在理解了this上下文,原型链后,我们也可以手工构造一个原创 2016-02-16 16:13:32 · 596 阅读 · 0 评论 -
js中null和undefined
摘自阮一峰老师的博客: null是一个表示”无”的对象,转为数值时为0;undefined是一个表示”无”的原始值,转为数值时为NaN null表示”没有对象”,即该处不应该有值 undefined表示”缺少值”,就是此处应该有一个值,但是还没有定义参考链接http://www.ruanyifeng.com/blog/2014/03/undefined-vs-null.html http转载 2016-02-16 12:18:57 · 421 阅读 · 0 评论 -
JS对象的深拷贝
在Object的原型链上添加方法。Object.prototype.deepCopy = function() { var obj = new Object(); obj.__proto__ = this.__proto__; for (x in this) { if (typeof x == 'object') { obj[x] =原创 2016-02-02 16:18:41 · 461 阅读 · 0 评论