【项目记录】个人主页设计和实现

思路

希望有一个站点可以归并技术文章、产品探索、生活记录和项目代码。

技术文章
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.seriesgulp.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/…

  1. 主内容区布局
  2. 豆瓣卡片动画
  3. 页脚设计
  4. Github卡片动画
    原文作者:程然然然然然
    原文地址: https://segmentfault.com/a/1190000017409054
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞