使用 Vue Transition 实现高度渐变动画

CSS Transition 中的高度从 0 到 auto 以及从 auto 到 0 是个艰难的任务(相比于其它属性的 transition 而言),原因也很简单:就是浏览器不支持此类 CSS 动画,无论在何种情况下,它都不会成功。 但是高度渐变是个很常用的动画效果,如果绕过纯 CSS height 属性,有如下方式来实现: 使用 max-height 属性,为元素设置一个不可能达到的最大高度,然后将 transition 转换为 max-height 从 0 到某个固定的

Change SOCKS Proxy to HTTP

OSX 🔗 Use brew to install polipo via socks proxy: $ ALL_PROXY=socks5://127.0.0.1:9500 brew install polipo Create polipo.config file under Document: socksParentProxy = "127.0.0.1:9500" socksProxyType = socks5 proxyAddress

Egret Note

Egret Engine 的学习笔记。 Egret Engine 是一款基于 JavaScript 的游戏制作引擎,支持 2D 与 3D 模式,支持 Canvas 与 WebGL 渲染,目前使用 TypeScript 编写。 显示对象 🔗 “显示对象”,准确的含义是可以在舞台上显示的对象。可以显示的对象,既包括可以直接看见的图形、文字、视频、图片等,也包括不能看见但真实存在的显示对象容器。 在Egret中,视觉图形都是由显示对象和显示对象容器组成的。 对象树

MEAN.JS 在 0.5 版本下发现的 NG-REPEAT 闪动问题

如题,经过长期痛苦的观察以及 debug 过程,以下原因被一一排除: 浏览器差异问题 数据更新问题 ng-repeat 没有添加 track by key 导致的性能问题 Angular 版本问题 MEAN.js 架构问题 实际原因却是因为 MEAN.js 在全局引入了 ngAnimate 依赖。(也算是一个架构问题?) 因此解决办法: 要么将全局依赖去掉,改为各自添加依赖 要么使用 transition: none !important

React Note - Basic

React 学习笔记(基础篇)。 安装 🔗 npm install -g create-react-app create-react-app hello-world cd hello-world npm start 实践:create 这一步会同时执行 npm install 因此有失败的可能,多尝试几次就成功了。 这个程序跟 vue-loader 很像,会造出一个简单的手脚架,包含了 Babel 编译器以及打包工具等等。但是细看它的 package.js

2016

刚刚过完了一个非常无聊的元旦。虽然像是很快过了一年的样子,但是又感觉过了很久。因为我已经想不起来年初我在做些什么了。 这次主要说些职业生涯和工作上的东西。其它的,想到再说。 工作 🔗 真的要翻看以前写的每周 report 才能想起来自己上半年做了些什么,不过也都是些没多大意思的项目。比较可喜的是,目前我已经从对内支持工具开发转为了对外产品开发。也算是公司对我的一种肯定吧。 公司下半年好像一直在寻找传统商业模式下的新方向,也尝试了一些新的项目,我基本上都有参与

Github Pages and SSL

经过一些努力,把博客迁移到了 Github Pages,将域名改成了自定义,并且成功启用了 SSL,以下是步骤(就不截图了)。 部署代码 🔗 Github Pages 支持两种级别的部署: user / organization 方式 repo 名字必须为 <user-name or org-name>.github.io pages build branch 固定为 master 部署后的发布域名即为 repo 名 project 方式

D3 Note - Interpolate

d3-interpolate 是 D3 的核心模块之一,与比例尺有些类似,interpolate (插值)所做的也是一些数值映射的工作。区别是,interpolate 的定义域始终是 0 ~ 1,并且始终为线性的。所以,更多时候它用来与 D3 的一些其他模组集成使用(如 transition, scale 等)。 举个例子: let i = d3.interpolateNumber(10, 20); // 10 as a, and 20 as b i(0.0); // 10

D3 Note - Scale

之前做的柱状图例子: let data = [250, 210, 170, 100, 190] let rectWidth = 25 svg.selectAll('rect') .data(data) .enter() .append('rect') .attr('y', (d, i) => height - d) .attr('x', (d, i) => i * rectWidth) .attr('height', d => d) .at