首页 > 开发 > 设计 > 正文

四季更迭,爱你不变:QQ情侣官网项目小结

2017-09-15 09:33:34  来源: 网友分享

QQ情侣——腾讯首款专属于情侣用户的私密社交应用。在这里,你可以和另一半进行聊天、交换日记等日常互动,也可以玩些有爱的小环节,比如:互发情侣专属表情、DIY心情状态、轻摇手机传出代表想念的爱心等,点滴间增进恋人的交流沉淀,让爱意更清晰、感情更甜蜜。目前QQ情侣已经成为国内最受用户青睐的情侣必备恋爱神器。趁热打铁下QQ情侣团队推出全新官网 love.qq.com,用来推广新上线的手机版APP,并承载QQ情侣各平台产品,从而更好的方便用户使用和传播产品。官网上线后以有爱的视觉体验赢得不少用户的好评,在此我们将官网设计背后的故事分享给大家:

视觉阶段

前期思路 :

一个产品的官网,对用户而言最大的价值是什么?需求最初,产品经理给到参考案例和基本信息,希望能小步快跑快速上线。目前多数移动产品的官网都采用手机界面+介绍文字+下载按钮的结构,简洁轻量、主次清晰。但是,做为一款有爱的产品,官网页面对用户的价值是什么?只是快速下载的承载吗?我们想做的不仅于此:一个产品的官网是用户对产品的第一印象,最好一眼就能看到产品特质,并被吸引。QQ情侣作为一个全新的APP,官网设计应该更加吸引眼球。

1

通过对QQ情侣的产品分析以及同类型产品的参考,总结出基本设计方向:1. 传达QQ情侣有爱、甜蜜的产品特质。2. 统一腾讯出品的金字招牌,注意细节元素与腾讯品牌的一致性。3. 合理承载QQ情侣其他版本和内容,具有良好的扩展性。4. 区别其他同类产品官网,确保独特性。

设计规划:

QQ情侣作为一款全新应用,对用户而言是陌生的,仅靠应用界面和介绍文字,不足以对用户产生吸引。加上QQ情侣官网更希望营造给用户的是甜蜜有爱的印象,而非主打强大功能的工具,所以未采用常见的功能介绍方式,而是从页面氛围着手,主打视觉渲染力,主打“爱”的关键点。并结合产品定位,官网确定为甜蜜、有爱、明亮的基调。4情侣用户中Chrome等高端浏览器较为普及,本次设计从前期规划就结合CSS3等页面脚本效果,以动态故事细节来丰富页面的整体体验,并考虑响应化设计,兼容官网在各终端下的浏览体验。目前QQ情侣中情侣专属表情在用户中获得良好口碑:霸道的妞妞和温厚的仔仔引起很多用户的共鸣和讨论。逗趣的形象能快速拉近产品和用户的距离,所以官网的设计自然也着手于此:由男女主角仔仔和妞妞领衔主演一出清新的爱情小品,通过插画式的气氛营造,增加对用户的吸引和共鸣。3

说到卡通风格的爱情小品…立马联想到Pixar在09年推出的《飞屋环游记》,这也是设计师本人很爱的一部电影。其中的一组蒙太奇画面更是印象深刻:短短几分钟里,Carl和Ellie从相遇到相伴再到分离,随着时间的推进和场景的切换慢慢变化,他们从羞涩的情侣变成沉稳的夫妻,从饱满的年华变成温暖的黄昏,从鲜活的雀跃变成悲伤的衰老…简单几帧图,传递出动人的感情,击中无数人的泪点...2本次官网设计亦希望用蒙太奇语言,讲述仔仔和妞妞的感情,从而带给用户感动和共鸣:恋人间都有心照不宣的默契,就像每次见面仔仔都要带给妞妞一枝玫瑰花。妞妞红着脸,仔仔浅浅的笑。不论炎炎夏日还是下雪起风,约会时的玫瑰从未间断。他们的故事也是所有情侣的缩影,QQ情侣有各种类型的情侣用户:年少青涩的学生、辛勤打拼的白领、历经患难的老夫老妻...等等等等,他们每对情侣都有属于自己的爱情故事,大家的爱都在季节的变幻里历久弥新。

QQ情侣官网 love.qq.com

homepage01homepage02

网页实现

CSS3动画营造气氛

之前的网页动画基本上有3种实现方法:Flash、JS、GIF。Flash动画强大,可与视频媲美,但制作复杂并脱离了浏览器平台,与网页内容的融合比较麻烦,JS动画表现力很强,但对网页性能的影响也较大,而GIF动画过于简单且不易维护。

CSS3的出现使网页动画的实现变得简单,并有很高的易维护性。但由于浏览器兼容性,一般采用渐进增强的方式,在兼容旧版浏览器的前提下,只有支持CSS3的浏览器才会有差异效果。因此目前在PC侧大多数网站都用CSS3来点缀页面。

.block .container { width: 100%; height: 300px; margin: 0 auto; background-color: #d3e8e0; position: relative;overflow:hidden;}.tree_wrap{position: absolute;left:0;top:30px;width:100%;height:245px;overflow: hidden;} .tree_wrap .tree{position: absolute;left:200px;bottom:0;width:100px;height:245px;background: url(https://isux.tencent.com/wp-content/uploads/2013/07/20130702172815578.png) no-repeat; opacity:1;-webkit-transition: all 700ms cubic-bezier(0.230, 1.000, 0.320, 1.000) 0ms;-webkit-transition-delay: 800ms;} .leaf{width: 20px;height: 20px;position: absolute;top:25px;left:400px;background: url(https://isux.tencent.com/wp-content/uploads/2013/07/20130702172815578.png) no-repeat -100px -180px;z-index: 12} .leaf1{top:205px;left:-60px} .leaf2{top:160px;left:-50px} .leaf3{top:125px;left:160px} .leaf4{top:225px;left:550px} .leaf1{ -webkit-animation:frame_leaf1 6s infinite Ease-in-out .95s; -webkit-animation-fill-mode:both; -moz-animation:frame_leaf1 2s infinite Ease-in-out .95s; -moz-animation-fill-mode:both; -o-animation:frame_leaf1 2s infinite Ease-in-out .95s; -o-animation-fill-mode:both; animation:frame_leaf1 2s infinite Ease-in-out .95s; animation-fill-mode:both; } @-webkit-keyframes frame_leaf1{ 0%{-webkit-transform:translate(280px,-60px) rotate(0deg)} 100%{opacity:.2;-webkit-transform:translate(0,0) rotate(90deg)} } .leaf2{ -webkit-animation:frame_leaf2 6s infinite Ease-in-out .95s; -webkit-animation-fill-mode:both; -moz-animation:frame_leaf2 2s infinite Ease-in-out .95s; -moz-animation-fill-mode:both; -o-animation:frame_leaf2 2s infinite Ease-in-out .95s; -o-animation-fill-mode:both; animation:frame_leaf2 2s infinite Ease-in-out .95s; animation-fill-mode:both; } @-webkit-keyframes frame_leaf2{ 0%{-webkit-transform:translate(290px,-125px) rotate(270deg)} 100%{opacity:.2;-webkit-transform:translate(0,0) rotate(45deg)} } .leaf3{ -webkit-animation:frame_leaf3 4s infinite Ease-in-out .95s; -webkit-animation-fill-mode:both; -moz-animation:frame_leaf2 2s infinite Ease-in-out .95s; -moz-animation-fill-mode:both; -o-animation:frame_leaf2 2s infinite Ease-in-out .95s; -o-animation-fill-mode:both; animation:frame_leaf2 2s infinite Ease-in-out .95s; animation-fill-mode:both; } @-webkit-keyframes frame_leaf3{ 0%{-webkit-transform:translate(45px,-40px) rotate(90deg)} 100%{opacity:.10;-webkit-transform:translate(0,0) rotate(45deg)} } .leaf4{ -webkit-animation:frame_leaf4 4s infinite Ease-in-out .95s; -webkit-animation-fill-mode:both; -moz-animation:frame_leaf2 2s infinite Ease-in-out .95s; -moz-animation-fill-mode:both; -o-animation:frame_leaf2 2s infinite Ease-in-out .95s; -o-animation-fill-mode:both; animation:frame_leaf2 2s infinite Ease-in-out .95s; animation-fill-mode:both; } @-webkit-keyframes frame_leaf4{ 0%{-webkit-transform:translate(-310px,-180px) rotate(0deg)} 100%{opacity:.4;-webkit-transform:translate(0,0) rotate(45deg)} }.biglove{position:absolute; left: 100px;top: 60px; width:276px;height:232px;background: url(https://isux.tencent.com/wp-content/uploads/2013/07/20130702172815578.png) no-repeat -140px -80px;} .heart4,.heart2{position:absolute;background: url(https://isux.tencent.com/wp-content/uploads/2013/07/20130702172815578.png) no-repeat -280px 0;width: 45px;height: 40px;} .heart3,.heart1{position:absolute;background: url(https://isux.tencent.com/wp-content/uploads/2013/07/20130702172815578.png) no-repeat -280px -40px;width: 39px;height: 35px;} .heart1{left:50px;top:27px;} .heart2{left:20px;top:110px;} .heart3{left:420px;top:110px;} .heart4{left:530px;top:27px;} .biglove{ -webkit-animation:frame_layer_6 1s infinite; -webkit-animation-fill-mode:both; -moz-animation:frame_layer_6 1s infinite; -moz-animation-fill-mode:both; -o-animation:frame_layer_6 1s infinite; -o-animation-fill-mode:both; animation:frame_layer_6 1s infinite; animation-fill-mode:both; } @-webkit-keyframes frame_layer_6{ 0%{-webkit-transform:scale(1.0)} 50%{-webkit-transform:scale(1.05)} 100%{-webkit-transform:scale(1.0)} } @-moz-keyframes frame_layer_6{ 0%{-moz-transform:scale(1.0)} 50%{-moz-transform:scale(1.05)} 100%{-moz-transform:scale(1.0)} } @-o-keyframes frame_layer_6{ 0%{-o-transform:scale(1.0)} 50%{-o-transform:scale(1.05)} 100%{-o-transform:scale(1.0)} } @keyframes frame_layer_6{ 0%{transform:scale(1.0)} 50%{transform:scale(1.05)} 100%{transform:scale(1.0)} } .heart1{ -webkit-animation:frame_layer_0 2s infinite Ease-in-out .95s; -webkit-animation-fill-mode:both; -moz-animation:frame_layer_0 2s infinite Ease-in-out .95s; -moz-animation-fill-mode:both; -o-animation:frame_layer_0 2s infinite Ease-in-out .95s; -o-animation-fill-mode:both; animation:frame_layer_0 2s infinite Ease-in-out .95s; animation-fill-mode:both } @-webkit-keyframes frame_layer_0{ 0%{-webkit-transform:translate(80px,80px) rotate(0deg)} 100%{opacity:.10;-webkit-transform:translate(0,0) rotate(-45deg)} } @-moz-keyframes frame_layer_0{ 0%{-moz-transform:translate(80px,80px) rotate(0deg)} 100%{opacity:.10;-moz-transform:translate(0,0) rotate(-45deg)} } @-o-keyframes frame_layer_0{ 0%{-o-transform:translate(80px,80px) rotate(0deg)} 100%{opacity:.10;-o-transform:translate(0,0) rotate(-45deg)} } @keyframes frame_layer_0{ 0%{transform:translate(80px,80px) rotate(0deg)} 100%{opacity:.10;transform:translate(0,0) rotate(-45deg)} } .heart2{ -webkit-animation:frame_layer_1 2s infinite Ease-in-out .95s; -webkit-animation-fill-mode:both; -moz-animation:frame_layer_1 2s infinite Ease-in-out .95s; -moz-animation-fill-mode:both; -o-animation:frame_layer_1 2s infinite Ease-in-out .95s; -o-animation-fill-mode:both; animation:frame_layer_1 2s infinite Ease-in-out .95s; animation-fill-mode:both } @-webkit-keyframes frame_layer_1{ 0%{-webkit-transform:translate(110px,60px) rotate(0deg)} 100%{opacity:.10;-webkit-transform:translate(-20px,0px) rotate(-90deg)} } @-moz-keyframes frame_layer_1{ 0%{-moz-transform:translate(110px,60px) rotate(0deg)} 100%{opacity:.10;-moz-transform:translate(-20px,0px) rotate(-30deg)} } @-o-keyframes frame_layer_1{ 0%{-o-transform:translate(110px,60px) rotate(0deg)} 100%{opacity:.10;-o-transform:translate(-20px,0px) rotate(-30deg)} } @keyframes frame_layer_1{ 0%{transform:translate(110px,60px) rotate(0deg)} 100%{opacity:.10;transform:translate(-20px,0px) rotate(-30deg)} } .heart3{ -webkit-animation:frame_layer_2 2s infinite Ease-in; -webkit-animation-fill-mode:both; -moz-animation:frame_layer_0 2s infinite Ease-in; -moz-animation-fill-mode:both; -o-animation:frame_layer_2 2s infinite Ease-in; -o-animation-fill-mode:both; animation:frame_layer_2 2s infinite Ease-in; animation-fill-mode:both; } @-webkit-keyframes frame_layer_2{ 0%{-webkit-transform:translate(-100px,40px) rotate(0deg)} 100%{opacity:.10;-webkit-transform:translate(40px,0) rotate(120deg)} } @-moz-keyframes frame_layer_2{ 0%{-moz-transform:translate(-100px,40px) rotate(0deg)} 100%{opacity:.10;-moz-transform:translate(40px,0) rotate(120deg)} } @-o-keyframes frame_layer_2{ 0%{-o-transform:translate(-100px,40px) rotate(0deg)} 100%{opacity:.10;-o-transform:translate(40px,0) rotate(120deg)} } @keyframes frame_layer_2{ 0%{transform:translate(-100px,40px) rotate(0deg)} 100%{opacity:.10;transform:translate(40px,0) rotate(120deg)} } .heart4{ -webkit-animation:frame_layer_3 4s infinite Ease-in-out .95s; -webkit-animation-fill-mode:both; -moz-animation:frame_layer_3 4s infinite Ease-in-out .95s; -moz-animation-fill-mode:both; -o-animation:frame_layer_3 4s infinite Ease-in-out .95s; -o-animation-fill-mode:both; animation:frame_layer_3 4s infinite Ease-in-out .95s; animation-fill-mode:both; } @-webkit-keyframes frame_layer_3{ 0%{-webkit-transform:translate(-220px,70px) rotate(0deg)} 100%{opacity:.10;-webkit-transform:translate(20px,0px) rotate(45deg)} } @-moz-keyframes frame_layer_3{ 0%{-moz-transform:translate(-220px,70px) rotate(0deg)} 100%{opacity:.10;-moz-transform:translate(20px,0px) rotate(45deg)} } @-o-keyframes frame_layer_3{ 0%{-o-transform:translate(-220px,70px) rotate(0deg)} 100%{opacity:.10;-o-transform:translate(20px,0px) rotate(45deg)} } @keyframes frame_layer_3{ 0%{transform:translate(-220px,70px) rotate(0deg)} 100%{opacity:.10;transform:translate(20px,0px) rotate(45deg)} }

DEMO 秋叶飘零