纯css打造QQ企鹅

<!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>


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值