简要地说一下这次的作品吧:
时间大概是20天。项目的idea是运营部的人想的,设计师和冬令营的设计师一样,这次我就专注做重构(其实后来写了好多前台和后台的交互),后台找了舍友。我和舍友都是大二才参加Quanta,所以要和大一的一起做作品比赛。
具体项目的功能是在线同步聊天看视频。
运营说是参考这个网站:letsgaze(可能需要翻墙,而且必须要用Chrome浏览器)。
简单的说就是两个人一起看视频,我暂停,你也暂停,我播放,你也播放,看的内容是同步的。同时也可以聊天。
上面这个就是主页了。接下来写点东西记录一下做的时候遇到的坑吧。
静态页面:Together。其他的页面在根目录下可以找到。
目录结构
|
|
页面主要分为前台和后台咯,后台用了Bootstrap框架,做完之后删掉了一些没用的文件。
CSS3动画
写了几个动画之后感觉这个就没什么好说的啦,没用到什么太复杂的东西,就切图,写动画效果,把动画相关的都放在一个css里面。这里安利一个腾讯团队做的工具:CSS3动画帧数计算器
兼容性的前缀的话用了AutoPrefixer
,不过貌似有BUG,在LESS下面使用完后在最后会生成很多个}
,要手动删除掉,否则LESS编译的时候会报错。
SEO
|
|
头部给搜索引擎用。(话说吐槽电影中的bug是不是有点奇怪=。=)
然后是上面用到的动画效果,因为文字是用了特殊字体,所以切图了,但是这样HTML里面没有什么<h1>
<h2>
标签来给搜索引擎获取内容,所以用了一点小小的技巧:
这个是主页中心的几个元素的HTML文件。然后.texthide
是这样的:
font: 0px/0 a
参考文章:letter-spacing+first-letter实现按钮文字隐藏
张鑫旭大神的一篇文章有提到这个东西。都是各种文字隐藏的方法。
其他的SEO相关的应该就是标签的语义化吧。该用<h1>
啊<p>
啊什么的就用这些。
登陆/注册模块
登陆注册是个模态框,把点击浮现的这个功能单独写成了一个JS函数:
后来发现这样单独出来相当有好处。因为后面也经常用到了这个模块。调用方法也超级简单:
虽然看起来没有那么语义化=。=
LESS
这次全部CSS都用LESS来做。用LESS还没真正发挥出他真正的优势吧,还是只用到皮毛。做之前和设计师沟通后设计图都有按照网格来做:
所以写LESS的时候就方便很多,尺寸基本都是数格子啦[]~( ̄▽ ̄)~*
虽然很想用多点变量=。=可是写样式的时候就基本一口气写完了,后面也懒得去提取公用变量了。下次迭代(如果有的话)重构一下代码咯。
雪碧图
百度百科的介绍好像蛮全的:CSS雪碧
CSS雪碧好处都有啥!
以前自己会思考要是面试官这么问我,我应该就是回答减少请求数吧,然后避免一些图片按钮的闪动。
看了介绍才知道原来大小还会减少总大小:
提高页面的加载速度
sprite 技术的其中一个好处是图片的加载时间(在有许多 sprite 时,单张图片的加载时间)。由所需图片拼成的一张 GIF 图片的尺寸会明显小于所有图片拼合前的大小。单张的 GIF 只有相关的一个色表,而单独分割的每一张 GIF 都有自己的一个色表,这就增加了总体的大小。因此,单独的一张 JPEG 或者 PNG sprite 在大小上非常可能比把一张图分成多张得来的图片总尺寸小。
让我想起了在益米主页用到的十几张头像和二维码哈哈哈哈哈,改成雪碧图吧,不然几十个请求数太恐怖了。
不过雪碧图还是有些缺点(百度百科),占用内存大?百度了一下在小项目还是没有太多问题的,然后多注意图片的组织,不要浪费太多空白,也不要把图标都挤在一起,导致有时候露出其他图标。
自己做雪碧图的时候要多注意使用图标的元素的大小,因为很有可能并不是纯粹的图标那么大,有可能是放在一个2~3倍的容器里面,这点需要注意,否则就要不断的改PSD,保存为PNG,看效果,再改PSD…
还有要注意的是定位属性用top
和left
吧,少用bottom
,因为如果修改了雪碧图bottom
可能就不是原来的位置了。