GitHub Pages装逼速成指南(50分钟版)

上一篇:《GitHub Pages装逼速成指南(5分钟版)》

上一篇文章简单介绍了如何用GitHub Pages快速制作一个装逼页面。这篇文章来稍许讲一下如何优化。

前文的评论中@诸葛兔 提到了文字背景色过于接近和加载等待的问题,关于这两个问题我有些想法,趁周末有空(单身狗)就稍微改进一下。

  • 关于文字背景色过近的问题,真要展开讨论的话,个人觉得其实应该属于政治哲学和玄学范畴的问题。对于咱们这个装逼页面来说的, 页面上的文字只是个点缀,没啥实际用途。(其上的文字是我信手胡诌的,有语法拼写错误请轻拍。)反正价值不高,能不能清晰阅读不重要,只要好看就行,所以稍许调节一下CSS的text-shadow,就算愉快地解决啦~

  • 这边真正要讲的是关于加载等待的问题。既然这个世界上逼格有高低,网速有快慢,就必然少不了网页加载要等待的问题。于是呼就做了这个加载等待的页面,这边记录一下制作的思路和过程。


所谓头势不清,干活不灵,先让我来整理一下思路。

打开这个装逼页面,你看到的加载过程是这样的:

  1. 出现一个转圈圈的加载等待画面。你有没有发现,不知道为什么不用特别说明,看到这样的圈圈转啊转得就本能地觉得这是要我等待的意思?
  2. 然后转的圈圈淡淡隐去,背景图像逐渐显出,标题、菜单、文字和注脚或自上而下或自下而上地滚出来。
  3. 到这里整个页面就加载完成了。

转圈圈的加载动画是用CSS3动画写的,你可以在这里看到HTML页面上的div元素(第68行到87行)和这里看到动画的CSS。其实动画的CSS除去头10行左右其他的都是我网上抄来的(没办法我这个人比较懒╮(╯_╰)╭),关键也在最头上的那个定义:

div.cover-container > div {
    display: none;
}

上面这个定义,让网页在出现时就隐去页面上的标题、菜单、文字和注脚等除加载动画外的所有其他元素,隐去了我们才能在后面让它们动画地显示呐~。

在这边的选择器我写的是带cover-containerclass的div直下的所有div元素。之所以这么选是因为这个页面上主要用来布局的wrapper div默认用的是display: table;方式显示的,对于后面来应用jQuery的动画有些不利,因为jQuery会给动画的元素加上display: block,这会导致整个页面布局出错。所以首先想到的是不去动负责布局的wrapper div,而是动它里面的子代div元素。

你可以在这边看到一个同样的效果,但是我用了更广泛的body > *的选择器,看这里

CSS是很强大的利器,但几乎所有利器都是双刃剑,用得好可以打天下,用不好寸步难行。所以读一本技术方面的经典著作还是非常有必要的。关于CSS的话,我不知道你有没有读过这本据说非常经典的好书CSS: The Definitive Guide, 3rd Edition,书中有非常详细的CSS基础,譬如选择器、权重计算、框模型、字体等,可惜的是,因为是本老书,所以对于CSS3只是简略地提了一下,没有很详细地介绍。不过作为一本基础入门书还是相当不错的。关于CSS3有什么好书也欢迎推荐。


接下来说一下关于图片的加载。一般情况下,一个<img>元素在DOM中被创建完赋上src值之后图片就开始加载了,一般我们看到的图片加载会从上到下或从下到上一点点显示出来。为了不让观赏者看到图片的加载过程,或者为了预先加载某些很大的还未显示的图片(如相册的<下一张图>),最简单的处理方法是手动创建一个<img>元素给它赋上src但不附加到DOM里面去,浏览器就会在后台加载图片,加载完成后会触发imageObject.complete事件,你可以用这个事件来响应图片加载完成。加载完成的图片会留在缓存里,随便你怎么用。

在这里我们用jQuery简化处理上述流程,首先创建一个孤立的<img>元素,给它赋上src,然后响应load事件。等图片加载完成后,首先用动画移除加载动画,然后创建新<div>元素并为其的background-image赋上url(之前创建的孤立img的src)值之后作为子代加载到.cover-img中并用动画方式显示。你可以在这里看到源代码。其实这里做得这么复杂就是为了能用到jQuery动画。

关于图片的加载本来想做一个进度条的,不过太复杂了就放弃了。图片加载的进度条基本原理是利用XHR的progress来报告进度,加载完的图片用mime+base64方式显示,方法之复杂令人咂舌。这里有一篇Adobe上叫做HTML5 Image Progress Events的博文,很详细地比较了XHR和HTML5的两种方式。HTML5方式很优雅只可惜现在还不能用。

However, the alternative approach is not yet possible on the web because the HTML image element lacks progress events. The Web Platform team at Adobe is proposing adding image progress events to HTML5 spec and implementing them in browsers. There is a WebKit bug tracking a prototype implementation.

说完了技术再来说关于技术方面的书。关于js方面的书,之前硬着头皮读完了JavaScript: The Definitive Guide, 6th Edition。读着的时候那个叫痛苦啊,头悬梁锥刺股。读完了第一个感受是这书绝对值这价!没读过那根本就不能叫懂javascript!绝对能和国学4经典、外国文学10大经典等齐名!绝壁应该编入人生必读100本书之中!读完这本书之后再去看其他网站的js代码,那感觉真像张无忌习得九阳神功做基础轻轻松松将乾坤大挪移练至十层般爽快~那些代码读起来都不在话下~


这篇文章到这里就准备要结束了,口感舌燥的我虽然很不情愿但还是不得不再写个结尾。接下来有空的话我准备再写一篇文章,讲一下我是如何用Lightroom调教照片并用Gimp优化图片大小、以及用Jekyll在GitHub Pages上快速建立页面的。

TODO:

  • 下一篇:《GitHub Pages装逼速成指南(150分钟版)》

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,271评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,275评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,151评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,550评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,553评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,559评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,924评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,580评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,826评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,578评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,661评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,363评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,940评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,926评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,156评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,872评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,391评论 2 342

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,725评论 1 92
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,389评论 25 707
  • iOS逆向之WeChat头文件导出 操作环境 iPhone5 (系统10.0.2) 越狱机 mac pro (系...
    南山青稞酒阅读 1,307评论 0 2
  • 近来,一直会收到大学生朋友的邮件和群内发言,说要“大学生职业生涯规划书”的范文。经过与一些网友的交谈,才知道,现在...
    读书短记阅读 400评论 0 3
  • 走了多久 走过梦想或者情感边境 经历多少 身受过炎凉冷暖时候 精彩那一篇仍未呈现 虚叹的词语竟出口 怀缅那时奋战时...
    7eb978401e0b阅读 233评论 0 0