查看详情

最近更新主题的一些背后

最近花了些时间,更新博客的一些样式。说说一些小细节。 火影完结 上周四火影完结了,大概这是自己最喜欢的一部动漫,没有之一。这次博客改版,网站的图标和logo都换成了简版的 卡卡西风格。 去掉了iconfont 这次博客去掉了iconfont,把图标全部换成了svg,svg已经成为了主流,而且自己本来对图标的需求就不是那么大。不过自己还是很喜欢themify 这个字体,设计的很漂亮。 更新了slide 和 navigation 之前的slide是svg曲线过度效果,这次换成了旋转的切页效果,参考地址在这里: https://tympanus.net/Tutorials/SlidingHeaderLayout/layout-multi.html 博客内容后增加了个人的社交站点 主要是页是为了各个站点的互通,还有就是为了尾巴的一些友情链接,可以给朋友的站点留些位置 博客主题依旧是免费试用的: 你可以前往这里下载 Ghost-theme。欢迎反馈。 详情 »

解决travis ci 中chrome找不到的办法

写一些react插件,大家会引入CI集成测试。这样有助于开源项目的质量。尤其引入了karma 进行浏览器的自动测试。 自己写react.js的开源组件的时候用的是 Airbnb Enzyme + Karma的测试环境。这个时候我们需要调用chrome测试,通常我们在 karma.conf.js 指定 browsers 参数为['chrome']。但是在CI的测试环境中。会提示 Cannot load browser "[Chrome]": it is not registered! Perhaps you are missing some plugin? 这个时候需要我们对测试环境做个判断重新指定浏览器,参考如下: const path = require('path'); let browsers = ['Chrome']; // trvis env if (process.env.TRAVIS) { browsers = ['Chrome_travis_ci'] 详情 »

查看详情

更新Github fork后的项目代码

其实很多时候我们都是fork完别人的代码然后快速提交,然后发一个PR过去就好了。但有的时候我们也会遇到需要长期保持我们fork的项目与fork的源保持一致。粗暴一点的做法,就是删掉当前的repository然后再重新fork一个。当然我们还有更好的方法。 下面用自己fork的react-hot-loader作为例子。自己fork了gaearon的 react-hot-loader,然后自己clone了一个项目在本地。这个时候进入项目,我们可以使用git remote -v可以看到我们的clone源。比如过了几天,对方项目新增了分支或者新的代码,这个时候你希望自己的项目也能够保持与原项目代码进行同步。这个时候我们可以这样做: 1 配置远程的upstream 地址 git remote add upstream https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git 而我这里的地址也就是我fork的地址 https://github.com/gaearon/react-hot-loader 2 这个时候你可以执行git fetch upstream 进行对upstram的代码更新。 大概你就能够看到一些更新的信息。 3 进行代码合并 这个时候我们可以用git merge合并我们希望从远程更新后的分支或者主干代码。比如: 参考 configuring-a-remote-for-a-fork Syncing a fork 详情 »

查看详情

使用css 3 制作长投影Long Shadow

在flat design(扁平化的设计)中,Long Shadow (长投影)被看着屡试不爽的设计技能。比如下面这张,非常经典的长投影设计: 摄影师选择长投影通常是给图片带来戏剧效果, 在自然界中,长投影发生在黄昏的时候,太阳接近地平线时,水平地面上的物体俯瞰就会有长投影的效果。在界面设计中我们通常采用了模拟45度角的效果,模拟阳光从西北角上射来,从而与设计的主题形成鲜明的对比效果。使用photoshop制作长投影有很多种方法,你可以阅读常用的四种方法创建长投影效果,自己平时最喜欢用的也是第四种,通过图层复制和移动来达到这样的效果,比如自己在behance上传的这张图片, 大致原理就是 你复制一个当前图层,选中图层样式,填充黑色,然后将其移到原图层下面。然后使用鼠标或者滤镜都可以实现平移,友移一个单位和下移一个单位。 然后,我们再复制这个图层,再平移一次。然后合并这两个阴影图层 然后我们再重复动作,即把这个图层复制一次,向下移和向右移动2个单位。再执行合并。依次类推复制,移动偶数倍单位,合并,然后再重复。 当然你用滤镜->其他->位移会更加方便 大致就是这样的效果,然后最后设置下透明度就好。 上面说的是设计,前端如何通过css代码来实现这样的效果?大家第一时间想到就是css3已经支持的text-shadow 首先我们给背景添加一种比较突出的颜色吧,自己强烈安利flatcolors这个网站,里面有很多配色方案,随取随用。 详情 »

查看详情

[译]Gif在web上的优化

原文地址: https://bitsofco.de/optimising-gifs/ @ireaderinokun 和很多人一样,我喜欢在自己的站点用gif。可以非常好的突出某些功能。比如下面模仿 itunes的轮播 不过我们不得不面对一个问题,就是gif太大,像上面的图片,大概有 11.4mb。最近自己在阅读很多别人的文章时候,也发现,由于自己文章存在gif导致网站加载过慢。gif的使用了无损的算法,每一帧都是一张gif图片,这意味着在图片压缩时候,不会存在信息丢失,这也就是为什么gif这么大。 为了解决这样的问题,我们需要做一些事情。 使用html5 video 感觉惊喜的是采用视频的格式mp4活着webM都所用的文件大小都小于使用无损压缩的 gif正因如此,一个解决方法就是,替换掉gif采用mp4活着webm格式的视频,使用自动播放和循环,这样让人会有gif的样子。 通过给video设置一些属性,我们可以让video去模拟gif播放的效果: autoplay 自动播放,用户无需点击 loop 无限循环播放 muted 尽管gif没有音轨,但是ios自动播放还是需要设置这个属性 playsinline ios safari上确保视频不会全屏 poster 制定视频下载时候的显示的图片 如同下面这个 “视频” 居然 1m不到 😂 将gif 转换成webm你可以到CloudConvert进行转换。 详情 »

查看详情

React-core-image-upload 发布2.0了

在不久前,我们把vue-core-image-upload 发布了2.0 。这次我们保持了完整的api迁移到了react上。支持了header 定义,支持了 file change 的自定义事件,更新了更加详细的文档。 react-core-image-upload 项目地址 Demo 快速开始 使用 npm npm install react-core-image-upload --save-dev 使用 yarn yarn add react-core-image-upload 使用ES6 进行开发 import React from 'react'; import ReactCoreImageUpload from 'react-core-image-upload'; let App = React.createClass({ //... render() { return( <div> <ReactCoreImageUpload text="Upload Your Image" class={['pure-button', 详情 »

查看详情

webpack dev server 2.0 一些变化

webpack dev server 2.0 配合着下新版本的webpack2面世,最近项目的配置也在迁移到webpack2上来的。推荐阅读 Migrating from v1 to v2 webpack dev server在这次升级中发生了很多变化,下面罗列一些和你开发相关围绕紧密一些更新点: 只能配合weexpack2使用,所以升级请把相关依赖全部升级上去. inline 命令现在默认放到了命令行支持中,如果需要取消加上--no-inline 取消掉一些不必要的console输出,比如当服务器关掉后,还一直出现error信息。 clientLogLevel 允许你控制你设置console 输出的信息 8080端口被占用了,现在不用担心了,新的体系会自己寻找可以使用的端口 开始支持web-worker 以及非web平台的使用比如(Electron) 对于http2 的支持。 关于更多relaese 的更新可以关注changelog 更多阅读 What’s new in webpack dev server 2.0 getting-started-with-webpack-2 What's new in webpack 2 详情 »

关于博客主题的一些升级

2月中旬会配合着发布新版本的博客主题Vanthink-Theme.也就是当前博客的主题。主要是几个优化和新特性: slide可能改变,不再用svg的这种了。 字体会换成svg的形式 文章内容的字体和一些文本样式的修改 更换文章推荐的图标 顶部导航栏样式更新 另外一个项目是七牛上传的项目,希望支持markdown的 惰性图片加载和上传,这样把图床切回来。 参考效果文章 详情 »

WEEX老版本插件扩展与VUE版的差异

WEEX在今年一月份宣布在web端对vue渲染的支持,也就是说,今后你可以用写vue的的方式去写weex 项目。在升级新版的weex的时候大家一定记得去官网看下diff [Weex 和 Vue 2.x 的语法差异]https://weex-project.io/cn/references/migration/difference.html。 如果我们在开发第三方插件的时候,我们同样需要注意对与插件写法上的差异。 第三方组件 老版本我们在第三方组件的时候,大致是这样的: // 设置 标签属性 const attr = { // ... } // 设置样式 const style = { // ... } // 设置事件响应 const event = { // ... } // 初始化函数 function init (Weex) { const Component = Weex.Component const extend = Weex.utils.extend // the component's constructor function Hello (data) { Component.call(this, 详情 »

[转]React Native 热加载(Hot Reload)原理简介

原文地址: http://www.jianshu.com/p/1fa6e9c0799f 最近发现 React Native 官方博客上面这篇介绍 Hot Reload 原理的文章,仔细阅读了一下,顺便翻译为中文,以飨读者。本文不少内容加入了译者的理解,并没有严格字对字翻译,英文水平不错的同学可以直接阅读原文 React Native 的设计目标是为开发者提供最好的开发体验,其中很重要的一点就是尽量缩短文件修改后到看到修改所产生的变化之间所需的时间。我们的目标是将这个循环所需的时间降到 1 秒以下,即使你应用的功能和体积在不断的膨胀。 通过下面三个主要特性我们离目标越来越近: 基于 Javascript 进行开发,避免了长时间的代码编译过程 实现了一个名为 Packager 的工具,用来将 es6/flow/jsx 文件转换成虚拟机可以理解的普通 JavaScript 语言。Packager 被设计为一个服务器,从而能够在内存中保存当下的状态,实现快速的增量更新,同时可以使用系统的多核 CPU 提高性能。 新增了一个名为实时加载(Live Reload)的特性,实现保存代码修改后自动重新加载 APP 详情 »