思路
希望有一个站点可以归并技术文章、产品探索、生活记录和项目代码。
技术文章
Hexo活跃齐全的生态的确很诱人,但通过Github管理文章、图片资源其实并不是很优雅。再者,存在流通和传播上的问题。现有的专栏平台支持标签和交流功能,也可手动设计标题代替类别目录,够够的,于是选择了segmentfault。
产品探索
研究一些好用的应用,个人对产品的思考,记在知乎专栏。
生活记录
日志、画、书音影,豆瓣再合适不过。
项目代码
自然是GitHub。
个人站点即一个集中入口,简单明了的首页+个人介绍页,完毕。
开发流程
在iPad上画了个草图,四个明晃晃的入口,要有Logo。
各种分辨率的屏上表现不差劲,用SVG。
资源请求尽量简单,SVG样式可控,svg-sprite,那得上gulp了。
gulp处理完的symbol要插入页面,加上入口项复用,用模板吧,熟悉的是handlebars。
既然上了gulp,干脆SCSS,livereload,dev-server都搞一搞。
为什么一个简单的页面要搞那么复杂,练手而已。
开发记录
gulp4 的更新
gulp默认装了4.0.0的版本,很久没关注。
增加gulp.series
和gulp.parallel
gulp默认最大化并行执行任务,以往需要顺序执行任务时,需要借助辅助插件run-sequence之类。上述两个方法提供串行和并行选择,同时gulp4中不再支持[task]
写法,必须使用上述两个方法代替。
gulp.series('clean', 'build'); // 先执行clean task,再执行build task
gulp.series('clean', function () {
// do some things
});
gulp.parallel('watch', 'connect') // 同时执行watch和connect
gulp.series('clean', gulp.parallel('styles', 'scripts')) // 先执行clean,然后styles + scripts
gulp.watch('src/**/*.js', ['scripts']) // error: watch task has to be a function (optionally generated by using gulp.parallel or gulp.series)
异步任务需要结束信号
当任务中可能有异步代码(比如watch,比如dev-server),需要显示发出异步完成信号
在Gulp 3.x中,你可以在不这样做的情况下离开。如果您没有显式地发出异步完成信号,则只会假设您的任务是同步的,并且在任务函数返回后立即完成。 Gulp 4.x在这方面更加严格。您必须明确表示任务完成。
卡片布局
思路
svg需要设定宽度和高度,如果跟随卡片变化,卡片不能使用padding-bottom实现宽高比(没有高度),所以卡片必须指定宽高。可以使用媒体查询调整卡片尺寸,目前使用固定宽度实现(未测试大屏下情况)。
实现四张卡片对齐排布,四列两列到一列分布。flexbox搭配flex-wrap属性可以实现自动换行,结合媒体查询控制容器宽度实现列数控制。
卡片动画
typing效果
右边框模拟光标,一个边框颜色透明->实色->透明的无限动画
宽度控制字符显示长度,使用step函数将动画分段,产生间隔效果
DONE
项目仓库:https://github.com/curlywater…
线上效果:https://curlywater.github.io/…
- 主内容区布局
- 豆瓣卡片动画
- 页脚设计
- Github卡片动画