其实这部分代码主要是参考着 element ui 和 iview 做的(iview 又是抄的 element),对关键代码进行了一些简化。主要需要实现的需求有:

  1. 用户可以更改、切换组件库使用的语言(应用级别)
  2. 用户可以自定义组件使用的措辞
  3. 兼容 vue-i18n 这个库
阅读全文 »

Travis CI 是一款免费的持续集成工具,可以与 Github 无缝集成。能够自动完成项目代码的日常测试、编译、部署等工作。现在,我把它应用到了我的两个项目中。

首先,要在这个平台上做持续集成的前提是到它上面 https://travis-ci.org/ 去注册个账号。实际上直接用 Github 账号进行 OAuth 登录就行了。登录以后可以在首页找到自己的所有仓库,在需要进行持续集成的项目前面的开关打开即可。开启后,Travis CI 会监听项目的代码推送与 PR,当发生改变时会立刻进行相应操作。

至于具体操作内容,由项目根目录的 .travis.yml 文件决定。这个文件的简单用法由下面两个具体例子来说明。

阅读全文 »

CSS Transition 中的高度从 0 到 auto 以及从 auto 到 0 是个艰难的任务(相比于其它属性的 transition 而言),原因也很简单:就是浏览器不支持此类 CSS 动画,无论在何种情况下,它都不会成功。

但是高度渐变是个很常用的动画效果,如果绕过纯 CSS height 属性,有如下方式来实现:

  • 使用 max-height 属性,为元素设置一个不可能达到的最大高度,然后将 transition 转换为 max-height 从 0 到某个固定的值;
  • 使用 transform: scaleY 实现;
  • 使用 JavaScript 动画。

上面的解决方案都从某种程度上解决了问题,但是,各有各的限制于缺点:

  • 使用 max-height 会造成动画效果与预期有些许出入(加速与延迟),实际体验是,它与实际 height 区别越大,这种感觉就会越明显,原因也很容易想到,因为 transition 的起点与终点均不在实际的起点与终点上;
  • 使用 scaleY 有两个问题:一是动效与高度渐变不一样,元素的内容看上去是被压缩了(而不是被收起或展开),这个倒可以忍耐。可恶的是第二点,它虽然看起来是渐变了,然而高度却并没有被渐变!意思是,在它下面的元素会在动画结束后”跳”到另一个位置而不是平滑地渐变到这个位置;
  • 使用 JavaScript 动画其实已经可以完美地实现高度渐变了,然而,问题是我们需要引入额外的 lib 来做成这件事,我可没心情纯 js 手写动画。

所以,我的目标是:

  1. 使用 css transition 完成动画;
  2. 动画效果必须完美;
  3. 与 vue transition 组件集成。

这实际上是一个很艰难的任务。经过了大量的失败尝试,最终还是 google 救了我。。下面先直接上解决方案。

阅读全文 »

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 = "::0"
proxyPort = 8123

Start polipo server:

$ polipo -c ~/Documents/polipo.config
Established listening socket on port 8123.

Verify it at http://localhost:8123.

Windows

Use privoxy tool. Download: http://www.privoxy.org/sf-download-mirror/Win32/

Install it, find the config file at \Privoxy\config.txt, append following to the bottom of it:

forward-socks5 / 127.0.0.1:9500 .

(Mind the dot at the end)

The default port is 8118, search from the config file to replace it.

Egret Engine 的学习笔记。

Egret Engine 是一款基于 JavaScript 的游戏制作引擎,支持 2D 与 3D 模式,支持 Canvas 与 WebGL 渲染,目前使用 TypeScript 编写。

阅读全文 »

如题,经过长期痛苦的观察以及 debug 过程,以下原因被一一排除:

  • 浏览器差异问题
  • 数据更新问题
  • ng-repeat 没有添加 track by key 导致的性能问题
  • Angular 版本问题
  • MEAN.js 架构问题

实际原因却是因为 MEAN.js 在全局引入了 ngAnimate 依赖。(也算是一个架构问题?)

因此解决办法:

  • 要么将全局依赖去掉,改为各自添加依赖
  • 要么使用 transition: none !important
阅读全文 »

刚刚过完了一个非常无聊的元旦。虽然像是很快过了一年的样子,但是又感觉过了很久。因为我已经想不起来年初我在做些什么了。

这次主要说些职业生涯和工作上的东西。其它的,想到再说。

阅读全文 »

经过一些努力,把博客迁移到了 Github Pages,将域名改成了自定义,并且成功启用了 SSL,以下是步骤(就不截图了)。

阅读全文 »
0%