<!DOCTYPE html>
<html>
<head>
<meta charset="gbk" />
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script type="text/javascript">
/**
此类用来管理QQ的动作
比如,挤眼,走路,跳跃,听歌等
*/
function qq(){
this.eye_wink_flag = false; //控制眨眼的标记
this.eye_flag = false; //眼睛状态标记
this.words = new Array(
'今天的天气很好的哇,主人为何不出去走走呢?',
'主人辛苦了!',
'今天的天气可不怎么好啊',
'哎,又是一个情深深雨朦朦的季节!',
'想死了啊,糟糕!',
'我勒个艹!',
'在炎热的夏季一定要记得睡午觉哦!',
'据说班花在想你哦 <img src="../blog/face/f26.gif" />',
'多读书,多看报,少吃零食,多睡觉!'
);
this.setEyes();
this.setHover();
this.setShake();
this.setWords();
}
qq.prototype = {
//控制挤眼动作
setEyes: function(){
setInterval(function(){
qq.eye_wink_flag? qq.eye_wink_flag=false:qq.eye_wink_flag=true;
}, 5000);
setInterval(function(){
qq.eye_flag? qq.eye_flag=false:qq.eye_flag=true;
if ( qq.eye_wink_flag ){
if ( qq.eye_flag ){
$(".qeye").css({"-moz-transform":"scale(1,0.08)","-o-transform":"scale(1,0.08)","-webkit-transform":"scale(1,0.08)",});
}else{
$(".qeye").css({"-moz-transform":"scale(1,1)","-o-transform":"scale(1,1)","-webkit-transform":"scale(1,1)",});
qq.eye_wink_flag = false;
}
}
}, 150);
},
//当鼠标晃到眼睛上面时,眼睛闭上
setHover: function(){
$(".qeye").hover(function(){
$(this).css({"-moz-transform":"scale(1,0.08)","-webkit-transform":"scale(1,0.08)","-o-transform":"scale(1,0.08)","cursor":"pointer"});
}, function(){
$(this).css({"-moz-transform":"scale(1,1)","-webkit-transform":"scale(1,1)","-o-transform":"scale(1,1)"});
});
},
//晃动身体
setShake: function(){
setInterval(function(){
if ( Math.random() <= 0.5 ){
$("#qq_body").css({"-moz-transform":"rotate(10deg)",
"-o-transform":"rotate(10deg)", "-webkit-transform":"rotate(10deg)"
});
setTimeout(function(){$("#qq_body").css({"-moz-transform":"rotate(0deg)",
"-o-transform":"rotate(0deg)", "-webkit-transform":"rotate(0deg)"
});}, 850);
}else{
$("#qq_body").css({"-moz-transform":"rotate(-10deg)",
"-o-transform":"rotate(-10deg)", "-webkit-transform":"rotate(-10deg)"
});
setTimeout(function(){$("#qq_body").css({"-moz-transform":"rotate(0deg)",
"-o-transform":"rotate(0deg)", "-webkit-transform":"rotate(0deg)"
});}, 850);
}
}, 30000);
},
//互动语言
setWords: function(){
setInterval(function(){
$("#qq_tip p").html(qq.words[Math.ceil(Math.random()*qq.words.length-1)]);
$("#qq_tip").css({"opacity":"1"});
setTimeout(function(){$("#qq_tip p").html("");$("#qq_tip").css({"opacity":"0"});}, 6000);
}, 30000);
}
}
</script>
<style>
body { font-family:"Lucida Sans Unicode"; font-size:14px; color:#4b4b4b; text-align:center; }
* { padding:0px; margin:0px; word-break:break-all; }
/* 外围容器 */
#container { position:relative; margin-left:auto; margin-right:auto; width:1000px; top:150px; left:150px;}
.qq { position:absolute; width:200px; height:210px; top:50px; }
/* 企鹅的头部 */
#qq_head { position:absolute; width:150px; height:100px; left:25px;
border-radius:150px 150px 150px 150px / 140px 140px 50px 50px;
background:-moz-radial-gradient(100px 35px, circle, rgb(70,70,70) 0%, rgb(50,50,50) 30%, rgb(30,30,30) 100%);
background:-o-radial-gradient(100px 35px, circle, rgb(70,70,70) 0%, rgb(50,50,50) 30%, rgb(30,30,30) 100%);
background:-webkit-gradient(radial, 100 35, 0, 156 36, 160,
from(rgb(70,70,70)), to(rgb(30,30,30)), color-stop(30%, rgb(50,50,50)));
}
.qeye { position:absolute; width:22px; height:32px; border-radius:100%; background:rgb(235,235,235); top:28px;
box-shadow:inset 0 1px 2px rgba(0,0,0,0.8), 0 0 1px rgba(255,255,255,0.3);
-moz-transition:-moz-transform 0.1s linear;
-o-transition:-o-transform 0.1s linear;
-webkit-transition:-webkit-transform 0.1s linear;
}
.eyeball { position:absolute; width:12px; height:15px; border-radius:100%; background:rgb(45,45,45);
box-shadow:0 1px 1px rgba(0,0,0,0.5);
}
#lball { left:6px; top:12px; }
#rball { left:4px; top:12px; }
#qleye { left:50px; }
#qreye { left:85px; }
#qmouth { position:absolute; width:84px; height:22px; top:62px; left:34px; border-radius:100%;
box-shadow:inset 0 0 1px rgba(0,0,0,0.5), 0 0 1px rgba(255,255,255,0.3); background:rgb(255,156,6);
}
#lip { position:absolute; width:64px; height:24px; border-radius:100%; background:rgb(255,156,6); top:1px; left:10px;
box-shadow:0 2px 1px rgb(45,45,45), inset 0 -6px 0 orange;
}
/* 企鹅的肚子 */
#qq_stomach { position:absolute; width:180px; height:120px; top:75px; left:10px;
box-shadow:0 1px 1px rgba(0,0,0,0.5);
border-radius:46px 46px 160px 160px / 100px 100px 120px 120px;
background:-moz-linear-gradient(top, rgb(45,45,45), rgb(25,25,25));
background:-webkit-gradient(linear, center top, center bottom, from(rgb(45,45,45)), to(rgb(25,25,25)));
background:-o-linear-gradient(top, rgb(45,45,45), rgb(25,25,25));
}
#stomach_wrap { position:absolute; width:150px; height:100px; bottom:2px; left:15px; background:seashell;
border-radius:46px 46px 160px 160px / 100px 100px 120px 120px;
}
#stomach_wrap:before { content:'CSS3'; position:absolute; font-size:14px; left:100px; top:30px; font-weight:bold;
text-shadow:0 1px 0 orange; -moz-transform:rotate(-10deg); -o-transform:rotate(-10deg); -webkit-transform:rotate(-10deg);
}
/* 企鹅的围巾 */
#chief { position:absolute; width:156px; height:80px; left:22px; top:40px; }
#chief_wrap { position:absolute; left:0; top:0; width:100%; height:100%; border-radius:100%;
box-shadow:inset 0 -6px 6px rgba(0,0,0,0.5), inset 0 -22px 0 red;
}
#chief_tail { position:absolute; width:20px; height:40px; background:red; top:60px; left:30px;
border-radius:5px 20px 5px 5px / 5px 15px 5px 5px;
box-shadow:inset 0 15px 15px rgba(0,0,0,0.3), 2px 2px 2px rgba(0,0,0,0.5), 2px 3px 0 darkred;
-moz-transform-origin:0px 10px; -webkit-transform-origin:0px 10px;
-moz-animation:qqwind 3s linear infinite; -webkit-animation:qqwind 3s linear infinite;
-moz-animation-delay:2s; -webkit-animation-delay:2s;
}
@-moz-keyframes qqwind {
30% { -moz-transform:rotate(6deg); }
70% { -moz-transform:rotate(-6deg); }
}
@-webkit-keyframes qqwind {
30% { -webkit-transform:rotate(6deg); }
70% { -webkit-transform:rotate(-6deg); }
}
/* 企鹅的双脚 */
#lfoot,#rfoot { position:absolute; width:80px; height:40px; border-radius:100% / 90%; top:170px; }
#lfoot { left:16px;
box-shadow:2px 2px 2px rgba(0,0,0,0.5), inset -4px -2px 2px rgba(0,0,0,0.5), inset 2px 5px 2px rgba(255,156,6,0.8);
background:-o-radial-gradient(0px 0px, circle, rgb(255,156,6) 0%, rgb(255,100,0) 30%, rgb(117,0,0) 100%);
background:-webkit-gradient(radial, 0 0, 0, 10 10, 100,
from(rgb(255,100,0)), to(rgb(117,0,0)), color-stop(30%,
rgb(255,100,0)));
background:-moz-radial-gradient(0px 0px, circle, rgb(255,156,6) 0%, rgb(255,100,0) 30%, rgb(117,0,0) 100%);
}
#rfoot { right:16px;
box-shadow:-2px 2px 2px rgba(0,0,0,0.5), inset 4px -2px 2px rgba(0,0,0,0.5), inset -2px 5px 2px rgba(255,156,6,0.8);
background:-o-radial-gradient(100% 0%, circle, rgb(255,156,6) 0%, rgb(255,100,0) 30%, rgb(117,0,0) 100%);
background:-webkit-gradient(radial, 80 0, 0, 70 10, 100,
from(rgb(255,100,0)), to(rgb(117,0,0)), color-stop(30%,
rgb(255,100,0)));
background:-moz-radial-gradient(100% 0%, circle, rgb(255,156,6) 0%, rgb(255,100,0) 30%, rgb(117,0,0) 100%);
}
#lsole,#rsole { position:absolute; width:30px; height:20px; border-radius:100% / 85%; top:16px; }
#lsole { left:3px; box-shadow:inset 3px -1px 1px rgba(0,0,0,0.3);
-moz-transform:rotate(16deg); -o-transform:rotate(16deg); -webkit-transform:rotate(16deg);
}
#rsole { right:3px; box-shadow:inset -3px -1px 1px rgba(0,0,0,0.3);
-moz-transform:rotate(-16deg); -o-transform:rotate(-16deg); -webkit-transform:rotate(-16deg);
}
/* 企鹅的双手 */
#lhand { position:absolute; width:40px; height:100px; left:25px; top:82px;
background:-moz-radial-gradient(10px 85px, circle, rgb(50,50,50) 0%, rgb(45,45,45) 15%, #000 100%);
background:-o-radial-gradient(10px 85px, circle, rgb(50,50,50) 0%, rgb(45,45,45) 15%, #000 100%);
background:-webkit-gradient(radial, 10 85, 0, 10 85, 80, from(rgb(50,50,50)), to(#000), color-stop(15%, rgb(45,45,45)));
border-radius:100px 20px 100px 20px / 160px 20px 200px 20px;
-moz-transform-origin:100% 0%; -webkit-transform-origin:100% 0%; -o-transform-origin:100% 0%;
-moz-transform:rotate(35deg); -webkit-transform:rotate(35deg); -o-transform:rotate(35deg);
}
#rhand { position:absolute; width:40px; height:100px; right:25px; top:82px;
background:-moz-radial-gradient(30px 85px, circle, rgb(50,50,50) 0%, rgb(45,45,45) 15%, #000 100%);
background:-o-radial-gradient(30px 85px, circle, rgb(50,50,50) 0%, rgb(45,45,45) 15%, #000 100%);
background:-webkit-gradient(radial, 30 85, 0, 30 85, 80, from(rgb(50,50,50)), to(#000), color-stop(15%, rgb(45,45,45)));
border-radius:20px 100px 20px 100px / 20px 160px 20px 200px;
-moz-transform-origin:0 0; -webkit-transform-origin:0 0; -o-transform-origin:0 0;
-moz-transform:rotate(-35deg); -webkit-transform:rotate(-35deg); -o-transform:rotate(-35deg);
}
/* 企鹅的语言 */
#qq_tip { position:absolute; width:210px; height:60px; background:rgb(160,160,160); left:180px; top:-40px;
border-radius:50%; box-shadow:inset 0 0 1px 1px orange; opacity:0;
-moz-transition:opacity 0.5s linear;
-o-transition:opacity 0.5s linear;
-webkit-transition:opacity 0.5s linear;
}
#qq_tip p { margin-top:15px; font-size:13px; text-align:center; width:176px; margin-left:16px; }
#qq_tip:before { content:''; position:absolute; width:56px; height:26px; background:rgb(160,160,160);
left:0; top:70px; border-radius:50%; box-shadow:inset 0 0 1px 1px orange; opacity:0.7;
}
/* 主要用于身体的摆动,本身没有什么显示效果 */
#qq_body { width:100%; height:100%;
-moz-transform-origin:50% 100%;
-o-transform-origin:50% 100%;
-webkit-transform-origin:50% 100%;
-moz-transition:-moz-transform 0.3s linear;
-o-transition:-o-transform 0.3s linear;
-webkit-transition:-webkit-transform 0.3s linear;
}
</style>
<title>纯css打造QQ企鹅</title>
</head>
<body>
<section id="container">
<div class="qq">
<div id="lfoot"><div id="lsole"></div></div>
<div id="rfoot"><div id="rsole"></div></div>
<div id="qq_body">
<div id="lhand"></div>
<div id="rhand"></div>
<div id="qq_stomach">
<div id="stomach_wrap"></div>
</div>
<div id="qq_head">
<div id="qleye" class="qeye">
<div id="lball" class="eyeball"></div>
</div>
<div id="qreye" class="qeye">
<div id="rball" class="eyeball"></div>
</div>
<div id="qmouth">
<div id="lip"></div>
</div>
</div>
<div id="chief">
<div id="chief_tail"></div>
<div id="chief_wrap"></div>
</div>
</div>
<div id="qq_tip"><p></p></div>
</div>
</section>
<script type="text/javascript">
var qq = new qq();
</script>
</body>
</html>