1.4k 1 分钟

Flutter 来自 Google, 是移动端 APP 开发 SDK,使用 Dart 语言编写一套代码即可同时在 Android 和 iOS 平台运行,性能无限接近原生,支持 android 4.1 以上 和 iOS8 以上。想进一步了解 Flutter,进入传送门 (英文版)。目前虽然是 alpha 版,截止到 2017 年 7 月 20 日,其在 Github 上的 star 达 5.6k+, 而且相当活跃,不论是使用者还是开发工程师,都在不停的交互改善,1.6k + 话题被打开,4.5k + 话题被关闭,说明谷歌工程师还是很重视的。在学习过程中,遇到一些常见的问题,可以到这里来寻找帮助


3k 3 分钟

最近正式入坑 Flutter,首先从环境搭建开始,看了网上好多关于 Windows 环境搭建的资料,基本都是按官方文档写的,看完的感受是,还不如直接去看官方文档。

官方英文文档传送门:Get Started: Install on Windows

本文主要总结我实际搭建的过程,最后发现不一定按网上那些博客或者官方文档写的来也可以搭建成功。

8.5k 8 分钟

# 前言

事情是这样的,前几天我接到一个 外包工头 的新需求,某品牌要搭建一个在线 VR 展厅,用户可以在手机上通过陀螺仪或者拖动来 360 度全景参观展厅,这个 VR 展厅里会有一些信息点,点击之后可以呈现更多信息(视频,图文等)...

我第一反应是用 3D 引擎,因为我不久前刚用 three.js 做过一个 BMW 的在线展厅,基本把 three.js 摸熟了。

2.4k 2 分钟

首先需要知道 clientX,clientY,screenX,screenY,offsetX,offsetY 是鼠标事件对象下的几个属性.

之前也一直对这些属性搞的稀里糊涂,看文档上说的也是不太理解,反正看完一头雾水,所以自己动手亲自测试了一下;说一下自己的理解;clientX,clientY,screenX,screenY,offsetX,offsetY 这几个属性是 “鼠标事件对象” 下的属性,所以必然是 “鼠标事件” 发生时候才会有意义;

clientX:当鼠标事件发生时(不管是onclick,还是omousemove,onmouseover等),鼠标相对于浏览器(这里说的是浏览器的有效区域)x轴的位置;
clientY:当鼠标事件发生时,鼠标相对于浏览器(这里说的是浏览器的有效区域)y轴的位置;
screenX:当鼠标事件发生时,鼠标相对于显示器屏幕x轴的位置;
screenY:当鼠标事件发生时,鼠标相对于显示器屏幕y轴的位置;
offsetX:当鼠标事件发生时,鼠标相对于事件源x轴的位置
offsetY:当鼠标事件发生时,鼠标相对于事件源y轴的位置

5.2k 5 分钟

# 概述

Velocity 是一个简单易用、高性能、功能丰富的轻量级 JS 动画库。它能和 jQuery 完美协作,并和 $.animate () 有相同的 API, 但它不依赖 jQuery,可单独使用。 Velocity 不仅包含了 $.animate () 的全部功能, 还拥有:** 颜色动画、转换动画 (transforms)、循环、 缓动、SVG 动画、和 滚动动画 ** 等特色功能。

它比 $.animate () 更快更流畅,性能甚至高于 CSS3 animation, 是 jQuery 和 CSS3 transition 的最佳组合,它支持所有现代浏览器,最低可兼容到 IE8 和 Android 2.3。

Velocity 目前已被数以千计的公司使用在自己的项目中,包括 WhatsApp, Tumblr, Windows, Samsung, Uber 等,这里 Libscore.com 统计了哪些站点正使用 velocity.js。

中文官网:http://shouce.jb51.net/velocity/index.html
英文官网:http://velocityjs.org/

下载 Velocity.js

9.6k 9 分钟

Mocha(发音 "摩卡")诞生于 2011 年,是现在最流行的 JavaScript 测试框架之一,在浏览器和 Node 环境都可以使用。

所谓 "测试框架",就是运行测试的工具。通过它,可以为 JavaScript 应用添加测试,从而保证代码的质量。

本文全面介绍如何使用 Mocha,让你轻松上手。如果你以前对测试一无所知,本文也可以当作 JavaScript 单元测试入门。值得说明的是,除了 Mocha 以外,类似的测试框架还有 JasmineKarmaTape 等,也很值得学习。


8.6k 8 分钟

# Babel 配置用法解析 写前面:babel 默认是只会去转义 js 语法的,不会去转换新的 API,比如像 Promise、Generator、Symbol 这种全局 API 对象,babel 是不会去编译的。在我学会了 babe 配置 l 大法之后,看我一会儿怎么把这些新的 API 给它编译出来就完事儿了。 # 本文基于 babel7.8.0。我主要记录下 babel 配置需要的一些重要的模块儿包,来一步步进行 babel 的一个配置解析 (以 babel.config.js 方式配置为例)。 # 本文主要涉及到的一些 babel 包: # @babel/core , #...
5.6k 5 分钟

Babel 是一个广泛使用的转码器,可以将 ES6 代码转为 ES5 代码,从而在现有环境执行。

这意味着,你可以现在就用 ES6 编写程序,而不用担心现有环境是否支持。下面是一个例子。

// 转码前
input.map(item => item + 1);

// 转码后
input.map(function (item) {
  return item + 1;
});

上面的原始代码用了箭头函数,这个特性还没有得到广泛支持,Babel 将其转为普通函数,就能在现有的 JavaScript 环境执行了。