参考 http://www.html5tricks.com/demo/html5-css3-smile-face/index.html

它还做了舌头...

一开始我都是用JS实现的动画  当然了  眼睛的追踪鼠标这部分确实是要用js来实现的

不过对于嘴巴这里  使用css transmation也可以

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Untitled Document</title>
<link rel="stylesheet" type="text/css" href="smile.css">
<script type="text/javascript" src='http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js'></script>
<script type="text/javascript" src='smile.js'></script>
</head> <body>
<div class='wholepart'>
<div class='part1'>
<div class='eyes'>
<div class='eye left'>
<div class='eye_center'>
<div class='pupil'></div>
</div>
</div>
<div class='eye center'>
<div class='center_point'></div>
</div>
<div class='eye right'>
<div class='eye_center'>
<div class='pupil'></div>
</div> </div>
</div>
</div>
<div class='part2'>
<div class='mouse_wrapper'>
<div class='mouse'>
<div class='teeth'>
<div class='tooth left'></div>
<div class='tooth center'>
<div class='center_point'></div>
</div>
<div class='tooth right'></div>
</div>
</div>
</div>
</div>
</div>
<div class='msg'></div> </body>
</html>

css

body
{
background-color:rgb(238,58,76);
} .part1
{
padding:10px;
} .eyes
{
width:370px;
margin:0 auto;
} .eyes:after
{
clear:both;
content:'.';
visibility:hidden;
height:;
display:block;
} .eye
{
width:140px;
height:140px;
border:5px solid #FFF;
border-radius:150px;
overflow:hidden;
/* Internet Explorer 10 */
display:-ms-flexbox;;
-ms-flex-pack:center;
-ms-flex-align:center;
/* Firefox */
display:-moz-box;
-moz-box-pack:center;
-moz-box-align:center;
/* Safari,Opera,and Chrome */
display:-webkit-box;
-webkit-box-pack:center;
-webkit-box-align:center;
/* W3C */
display:box;
box-pack:center;
box-align:center;
} .eye.left
{
float:left;
} .eye.right
{
float:right;
}
.eye.center{
float:left;
border: none;
width: 70px;
position: relative;
} .center_point{
width: 1px;
height: 1px;
background-color: black;
} .eye .eye_center{
position: relative;
}
.eye_center .pupil{
width: 30px;
height: 30px;
position: absolute;
top: -15px;
left: -15px;
background-color: white;
border-radius: 15px;
overflow: hidden;
} .part2
{
height:250px;
padding:10px;
} .mouse_wrapper{
width:350px;
height:175px;
margin:0 auto;
} .mouse
{
background-color:#58151a;
width:350px;
height:175px;
margin:0 auto;
-webkit-border-bottom-right-radius:175px;
-webkit-border-bottom-left-radius:175px;
-moz-border-radius-bottomright:175px;
-moz-border-radius-bottomleft:175px;
border-bottom-right-radius:175px;
border-bottom-left-radius:175px;
overflow: hidden;
transition:all 0.5s;
} .mouse_wrapper:hover .mouse{
transition:all 0.5s;
width: 50px;
height: 50px;
border-radius: 25px; } .teeth
{
margin:0 auto;
width:150px;
background-color:#58151a;
transition: all 0.5s; /*当鼠标移开的时候 还原也需要动画*/
}
.mouse_wrapper:hover .teeth{
transition: all 0.5s;
margin-top: -200px;
} .teeth:after
{
clear:both;
content:'.';
visibility:hidden;
height:;
display:block;
} .tooth
{
background-color:#FFF;
height:75px;
width:50px;
} .tooth.left
{
float:left;
}
.tooth.center{
background-color: transparent;
float: left;
/* Internet Explorer 10 */
display:-ms-flexbox;;
-ms-flex-pack:center;
-ms-flex-align:center;
/* Firefox */
display:-moz-box;
-moz-box-pack:center;
-moz-box-align:center;
/* Safari,Opera,and Chrome */
display:-webkit-box;
-webkit-box-pack:center;
-webkit-box-align:center;
/* W3C */
display:box;
box-pack:center;
box-align:center;
}
.tooth.right
{
float:right;
}

JS

$(function(){
movePupil();
//changeMouse();
}); function movePupil(){
$('.wholepart').mousemove(function(event) {
/* Act on the event */
//注意offset()和 position()的区别
//offset指的是相对于窗体的偏移(没有iframe的情况下)
//position()是相对于最近一级拥有position为absolute或者relative的父元素的偏移
var x=event.pageX-$('.eyes .center_point').offset().left;
var y=event.pageY-$('.eyes .center_point').offset().top;
$('.pupil').css({
'left': -15+(x/10),
'top': (y<=0)?(-15+y/2):(-15+y/10)
});
});
} function changeMouse(){
$('.wholepart').mousemove(function(event) {
/* Act on the event */
var x=event.pageX-$('.teeth .center_point').offset().left;
var y=event.pageY-$('.teeth .center_point').offset().top;
$('.mouse').css({
'height': 175-Math.abs(x/2),
'width': 350-Math.abs(x),
});
$('.teeth').css({
'margin-top': -Math.abs(x/2)
});
});
}

CSS3 模拟笑脸的更多相关文章

  1. css3模拟jq点击事件

    还是这个梗,收好冷.今天是一个css3模拟jq点击事件,因为我发现,css3中没有类似于,js的点击事件,那么,可不可以仿照 jq的效果,类似的做一个呢?主要用到,input里面的radio 单选按钮 ...

  2. 纯CSS3模拟星体旋转效果

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. CSS3模拟IOS滑动开关

    前言 H5站点需要IOS滑动按钮的效果,想了想似乎CSS3能搞起,就折腾出来了...挺简单的..请看注释 效果 代码 <!DOCTYPE html> <html lang=" ...

  4. css3 模拟标牌震荡效果

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http ...

  5. 8款给力HTML5/CSS3应用插件 可爱的HTML5笑脸

    1.HTML5/CSS3实现笑脸动画 非常可爱 今天我们要分享一款基于纯CSS3实现的笑脸动画,我们只要在面部滑动鼠标,即可让人物的眼睛嘴巴动起来,实现微笑的效果,还挺可爱的. 在线演示 源码下载 2 ...

  6. 分享9款用HTML5/CSS3制作的动物人物动画

    1.纯CSS3绘制可爱的蚱蜢 还有眨眼动画 今天我们要分享一个利用纯CSS3绘制的蚱蜢动画,非常可爱. 在线演示 源码下载 2.HTML5 Canvas头发飘逸动画 很酷的HTML5动画 HTML5 ...

  7. 7款纯CSS3实现的炫酷动画应用

    1.纯CSS3实现人物摇头动画 这次我们要来分享一款超级可爱的纯CSS3人物摇头动画,初始化的时候人物的各个部位是利用CSS3动画效果拼接而成,接下来就是人物听音乐的场景,一边听音乐一边摇着脑袋,十分 ...

  8. 那些不错的 [ Html5 + CSS3 + Canvas ] 效果!

    apng制作工具:http://isparta.github.io/how.html apng制作文章:http://isux.tencent.com/introduction-of-apng.htm ...

  9. 用CSS3制作50个超棒动画效果教程

    这50个CSS动画集合可以让你通过使用JavaScript函数来让动画更生动.为了能够预览到这些惊人的CSS3技术带来的动画特效,请大家使用如Safari和Chrome这类基于WebKit内核的浏览器 ...

随机推荐

  1. 2014年同年CFA考试中哪些CFA资料没有变化?

    从2014年起,美国CFA协会将官方教材.题库.模拟题等CFA资料捆绑在报名费用之中,而以往可以单独选购的纸质版教材也变成了额外购买.这让非常多參加12月的CFA考生产生了借阅6月考生CFA资料的想法 ...

  2. WCF初步学习

    一.理解面向服务(Service-Oriented-Architecture)    是指为了解决在Internet环境下业务集成的需要,通过连接能完成特定任务的独立功能实体实现的一种软件系统架构.S ...

  3. Matlab中取模(mod)与取余(rem)的区别

    取模(mod)与取余(rem)是不同的,通常取模运算也叫取余运算,它们返回结果都是余数. rem和mod唯一的区别在于: 当x和y的正负号一样的时候,两个函数结果是等同的:当x和y的符号不同时,rem ...

  4. SSH框架——Sprign声明式事务

    Spring事务管理 Spring是SSH中的管理员,负责管理其它框架,协调各个部分的工作.今天一起学习一下Spring的事务管理.Spring的事务管理分为声明式跟编程式.声明式就是在Spring的 ...

  5. c#Ulong用一个高位Uint和低位Uint表示

    有时候考虑到平台之间的通用性,可能把一个Ulong拆分成2个Uint来进行各平台之间的通讯,当时转换的时候有点头晕,对与或预算不是很熟悉,不过还是花了半小时弄出来了,代码: //ulong的最大值2^ ...

  6. ROS理解roslaunch命令

    roslaunch命令从launch文件中启动一个节点,它的使用方法如下: roslaunch [package] [filename.launch] 首先切换到beginner_tutorials文 ...

  7. 理解ROS的参数

    记住每次操作之前都要在一个单独的终端中运行ros的核心. roscore rosparam命令允许你在ROS的参数服务器上操作和存储数据,参数服务器可以存储整数,浮点数,布尔类型,字典,列表.ROS使 ...

  8. thinkPHP的常用配置项

    'URL_PATHINFO_DEPR'=>'-',//修改URL的分隔符 'TMPL_L_DELIM'=>'<{', //修改左定界符 'TMPL_R_DELIM'=>'}&g ...

  9. h5的api dom全屏展示

    下面是完整的例子,暂不做分析 <!DOCTYPE html> <html> <head> <title> FullScreen API 演示</t ...

  10. C#学习日志 day 4 ------ 类相关---this指针以及相关关键字

    c#中的类和java中的类没什么太大区别.但是c#有些特有的关键字以及属性使得c#具有一些特性. 首先就是this关键字,this在c++和java中都有,可以表示当前对象,以及变量所属对象等.例如 ...