css3绘制卡通-大白

第一次分享自己的代码,希望各路大神多多指教!先上demo图

html部分:

<div class="wrap">
        <div class="header">
            <div class="eyeLeft"></div>
            <div class="eyeRight"></div>
            <div class="eyeMouth"></div>
        </div>
        <div class="body">
            <!-- 身体上部分 -->
            <div class="body_top">
                <!-- 心脏部位 -->
                <div class="body_top_heart" id="TUMMY">
                    <span></span>
                    <span></span>
                    <span></span>
                    <span></span>
                    <span></span>
                </div>
            </div>
            <!-- 身体中间部分 -->
            <div class="body_middle">
                <div class="body_middle_left"></div>
                <div class="body_middle_right"></div>
            </div>
            <!-- 身体中间肚子 -->
            <div class="body_tummy"></div>
            <!-- 身体肚子上的显示块 -->
            <div class="body_display" id="SHOW"></div>
            <p hidden id="TELL">您好!我是大白,您的私人健康助理!</p>
            <!-- 身体手部分 -->
            <div class="head">
                <div class="head_left">
                    <div class="head_left1"></div>
                    <div class="head_left2"></div>
                </div>
                <div class="head_right">
                    <div class="head_right1"></div>
                    <div class="head_right2"></div>
                </div>
            </div>
            <!-- 身体脚部分 -->
            <div class="body_foot">
                <!-- 左边 -->
                <div class="body_foot_left"></div>
                <div class="body_foot_right"></div>
            </div>
            <!-- 身体阴影 -->
            <div class="body_shadow"></div>
        </div>
    </div>

css部分:

	body{background: #af2024;}
	.wrap{
		width: 500px;
		height: 700px;
		margin:0 auto;
		position: relative;
	}

	/* 头部 */
	.header{
		width: 114px;
		height: 76px;
		background: -webkit-linear-gradient(top,#fff 50%,#d6d6d6 100%);
		background: linear-gradient(top,#fff 50%,#d6d6d6 100%);
		border-radius: 50% 50% 45% 45%;
		position: relative;
		margin:0 auto;
		top: 60px;
	    box-shadow: 0 5px 5px rgba(0,0,0,0.2);
	    z-index:400;
	    animation:turn 6s infinite;
	    -webkit-animation:turn 6s infinite;
	}
	.eyeLeft{
		width: 14px;
		height: 14px;
		background: #333;
		border-radius: 50%;
		position: absolute;
		left:23px;
		top:30px;
		animation:nication 2.3s ease infinite;
		-webkit-animation:nication 2.3s ease infinite;
	}
	.eyeRight{
		width: 14px;
		height: 14px;
		background: #333;
		border-radius: 50%;
		position: absolute;
		left:74px;
		top:30px;
		animation:nication 2.3s ease infinite;
		-webkit-animation:nication 2.3s ease infinite;
	}
	@keyframes nication{
		0%,20%, 100%{
			-webkit-transform:scale(1,1);
			transform:scale(1,1);
		}
		10%{
			-webkit-transform:scale(1,0.2);
			transform:scale(1,0.2);
		}
	}
	@-webkit-keyframes nication{
		0%,20%, 100%{
			-webkit-transform:scale(1,1);
			transform:scale(1,1);
		}
		10%{
			-webkit-transform:scale(1,0.2);
			transform:scale(1,0.2);
		}
	}
	@keyframes turn{
		0%,10%,20%,30%,80%,90%,100%{
			-webkit-transform:rotate(0deg);
			transform:rotate(0deg);
		}
		35%,40%,45%,50%,55%,65%,75%{
			-webkit-transform:rotate(5deg);
			transform:rotate(5deg);
		}
	}
	@-webkit-keyframes turn{
		0%,10%,20%,30%,80%,90%,100%{
			-webkit-transform:rotate(0deg);
			transform:rotate(0deg);
		}
		35%,40%,45%,50%,55%,65%,70%,75%{
			-webkit-transform:rotate(5deg);
			transform:rotate(5deg);
		}
	}
	.eyeMouth{
		width: 55px;
		height: 5px;
		border-radius: 50%;
		box-shadow: 0 1.5px 0 #333;
		position: absolute;
		top:33px;
		left: 30px;
	}

	/* 身体 */
	.body_top{
		width: 226px;
    	height: 160px;
    	background: -webkit-linear-gradient(top, #f9f9f9 30%, #f1f2ed 60%, #eee 90%);
    	background: linear-gradient(top, #f9f9f9 30%, #f1f2ed 60%, #eee 90%);
    	border-radius: 105px 105px 5px 5px;
    	position: absolute;
    	top:118px;
    	left: 135px;
    	z-index:200;
	}
	.body_top_heart{
		width: 30px;
		height: 30px;
		background: #eee;
		border-radius: 50%;
		position: absolute;
		top:60px;
		left: 155px;
		box-shadow: 0px 3px 1px rgba(0,0,0,.1), 0px 3px 2px rgba(255,255,255,1) inset;
		-webkit-transform:skew(10deg,0) rotate(10deg);
        transform:skew(10deg,0) rotate(10deg);
        overflow: hidden;
        cursor: pointer;
	}
	.body_top_heart>span{
	    width: 8px;
	    height: 1px;
	    background: rgba(0,0,0,0.1);
	    position: absolute;
	}
	.body_top_heart>span:nth-child(1){
		top:17px;
		left: 0px;
	}
	.body_top_heart>span:nth-child(2){
		width: 6px;
	    left: 7px;
	    top: 15px;
	    transform: rotate(-45deg);
	}
	.body_top_heart>span:nth-child(3){
		width: 8px;
	    left: 12px;
	    top: 13px;
	    transform: rotate(0deg);
	}
	.body_top_heart>span:nth-child(4){
	    width: 6px;
	    left: 19px;
	    top: 15px;
	    transform: rotate(45deg);
	}
	.body_top_heart>span:nth-child(5){
	    left: 24px;
	    top:17px;
	}
	.body_middle_left{
		width: 200px;
		height: 280px;
		background: #eee;
		position: absolute;
		top:200px;
		left: 115px;
		border-radius: 15% 30%;
		transform: rotate(10deg);
	    box-shadow: -3px 0 3px rgba(0,0,0,0.1);
	    z-index:100;
	}
	.body_middle_right{
		width: 200px;
		height: 280px;
		background: #eee;
		position: absolute;
		top:200px;
		left: 180px;
		border-radius: 30% 15%;
		transform: rotate(-10deg);
	    box-shadow: 3px 0 3px rgba(0,0,0,0.1);
	    z-index:100;
	}
	.body_tummy{
		width: 286px;
		height: 233px;
		border-radius: 50%;
		position: absolute;
		top:290px;
		left: 103px;
	    background: -webkit-linear-gradient(top, #eee 50%,#d2d2d2 100%);
	    background: linear-gradient(top, #eee 50%,#d2d2d2 100%);
	    box-shadow: 0px 5px 5px rgba(0,0,0,.2);
	    z-index:300;
	}
	.body_foot_left{
		width: 118px;
		height: 180px;
		position: absolute;
		top:450px;
		left:132px;
	    background:#eee;
	    border-radius: 10% 20% 18% 58%;
	    box-shadow:-1px 0px 8px rgba(0,0,0,0.2) inset;
	    z-index: 20;
	}
	.body_foot_right{
		width: 118px;
		height: 180px;
		position: absolute;
		top:450px;
		left:250px;
	    background:#eee;
	    border-radius: 18% 10% 58% 20%;
	    box-shadow:1px 0px 8px rgba(0,0,0,0.2) inset;
	    z-index: 20;
	}
	.head .head_left1{
		width: 260px;
		height: 150px;
		background: #eee;
		position: absolute;
		top: 170px;
    	left: 36px;
		transform: rotate(-48deg);
    	border-radius: 50%;
	}
	.head .head_left2{
		width: 100px;
		height: 237px;
		background: #eee;
		position: absolute;
		top:215px;
		left: 56px;
		transform: rotate(2deg);
    	border-radius: 50%;
	}
	.head .head_right1{
		width: 260px;
		height: 150px;
		background: #eee;
		position: absolute;
		top: 170px;
    	left: 200px;
    	transform: rotate(48deg);
    	border-radius: 50%;
	}
	.head .head_right2{
		width: 100px;
		height: 237px;
		background: #eee;
		position: absolute;
		top:215px;
		left: 338px;
		transform: rotate(-2deg);
    	border-radius: 50%;
	}
	.body_shadow{
	    width: 100px;
	    height: 80px;
	    position: absolute;
	    bottom: 100px;
	    left: 180px;
	}
	.body_shadow:before{
		content: ‘‘;
		width: 150px;
		height: 80px;
		position: absolute;
		bottom:0px;
		left: 125px;
	    box-shadow: -200px 70px 30px rgba(160,28,32,0.58);
	}
	.body_shadow:after{
		content: ‘‘;
		width: 150px;
		height: 80px;
		position: absolute;
		bottom:0px;
		left: 273px;
	    box-shadow: -200px 70px 30px rgba(160,28,32,0.58);
	}
	.body_display{
		width: 135px;
		height:0px;
		background: #f3f3f3;
		position: absolute;
		top:320px;
		left:170px;
		z-index:99999;
		box-shadow: 1px 1px 5px #eee inset;
		font-size: 12px;
		font-family: \5FAE\8F6F\96C5\9ED1;
		line-height: 25px;
		letter-spacing: 2px;
		color: #a2a2a2;
		overflow: hidden;
	}

代码完结!

补发大白中间的那块显示屏代码(用jq实现)

<script type="text/javascript">
	var num=0;
	var open=true;
	var word=document.getElementById(‘TELL‘).innerHTML;
	var show=document.getElementById("SHOW");
	var tum=document.getElementById(‘TUMMY‘);

	tum.onclick=function(){
		if (open==true) {
			$(‘#SHOW‘).animate({‘height‘:‘50px‘,‘top‘:‘295px‘},500);
			show.style.padding=‘10px‘;
			time=setInterval(addTell,300);
			setTimeout(clear,8000);
		}
		open=false;
	}

	/*greetings*/
	function addTell(){
		show.innerText = word.substring(0,num++);
		console.log(num);
	}

	/*empty*/
	function clear(){
		clearInterval(time);
		num=0;
		$(‘#SHOW‘).html(‘‘);
		$(‘#SHOW‘).animate({‘height‘:‘0px‘,‘top‘:‘320px‘},500,function(){
			$(‘#SHOW‘).css(‘padding‘,‘0px‘);
			return open=true;
		});

	}
</script>

我的github代码地址:https://github.com/Mr-hyc/CSS3-.git

时间: 2024-10-06 05:13:45

css3绘制卡通-大白的相关文章

css3绘制六边形

六边形思路:使用CSS3绘制六边形主要使用伪类:before和:after在源元素之前和之后再绘制两个元素,并利用css3的边框样式,将这两个元素变成三角形放置在源元素的两端即可. <h2>三角形在左右两侧</h2> <!-- 第一种方法 不兼容低版本浏览器 --> <div class="hexagon1"></div> <!-- 第二种方法 兼容低版本浏览器 --> <div class="he

用纯css3绘制的能自适应浏览器的哆啦a梦动画

最近在研究用css3绘制矢量图,于是就用纯css3绘制了能自适应浏览器宽度的哆啦a梦动画,兼容css3的浏览器都可以正常观看,下面只是网页截图: 废话不多说了,直接给代码. html 代码: <div class="dlam" title="用纯css3绘制的能自适应浏览器的哆啦a梦动画"> <div class="bozi"> <div class="lingdan"> <div c

CSS3绘制8种超炫的加载动画

CSS3绘制8种超炫的加载动画     逛前端开发网站的时候,偶尔发现一组非常炫酷的CSS3加载动画,遂迫不及待的做个Demo保存下来. 这些加载动画用到了CSS3的旋转transform属性,颜色透明度设置和伪元素操作等CSS技术.奇妙的组合,产生了意想不到的效果. 1.上下起伏波动的加载动画: #loader1, #loader1:before, #loader1:after { background: #f2fa08; -webkit-animation: load1 1s infinit

用纯CSS3绘制萌系漫画人物动态头像

大家已经见惯了用CSS3画的图标.LOGO.头像,这次台湾同学Rei给我们带来了用纯CSS3绘制的日本动漫<轻音少女>女主角秋山澪的动态头像.看到动图我震惊了!!!CSS3的强大再次霸气测漏! 示例中用到的主要CSS3特性如下: border-radius:绘制边框圆角. transform:主要是旋转(rotate)和偏斜(skew),用于绘制各种形状. animation:动画效果的实现,例如头发的飘动.眼睛的闪动. 只要掌握了这几个特性,你也能画出同样奇妙的CSS3动画,赶快试试吧!

CSS3绘制砖墙-没有用任何图片

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

CSS3绘制旋转的太极图案

1.效果布局主要用了用了3个DIV,配合:before.:after利用css3中的圆角(border-radius).阴影(box-shadow)完成. 2.动画效果CSS3中的@keyframes.animation <!doctype html> <html> <head> <meta charset="utf-8"> <title>CSS3绘制旋转的太极图案</title> <style> bo

纯CSS3制作卡通场景汽车动画效果

前言 今天分享一下我昨晚做的CSS3动画效果——卡通场景汽车动画.在接触CSS3动画之前,我之前实现一些简单的动画效果都是使用flash完成的.但是自从CSS3横空出世,在移动端对CSS3动画的运用越来越多.今天这个分享是PC端的案例,因为我做的是大场景来的,起因还是我无意间看到一张卡通图片.于是我突发灵感,就趁热打铁使用CSS3动画把它按照自己的想法实现了出来.接下来,就让我们一起进入这个好玩的分享吧! 预览 学习一个案例要有热情,就应该先看一下案例的效果,所以,下图为我录的gif图片,大家先

css3绘制各种图形效果

如何使用CSS来制作图形,比如说圆形,半圆形,三角形等.今天我特意在网上查阅了一下,介绍这样的教程还是蛮多的,因此我也决定整理一份相关教程出来与大家一起分享. 很少会有人意识到,当浏览器绘制的border,会有一个角度的问题.我们就是得用这样的一个技巧来制作三角的效果.我们只需要保证一边的边框是有色,其他边框色为透明色,这样我们就很容易制作出三角形,然后改变其大小来实现不同的效果.我们一起来看一段代码: 1 2 3 4 5 6 7 .css-arrow-multicolor { border-c

CSS3 绘制360安仔小精灵[原创]

Css3图形通常由矩形,圆形,椭圆,三角形,梯形等组合而成. 矩形,为display:block的块级元素设定宽高,便能实现, 圆角矩形,椭圆,圆形,则通过border-radius 属性来得到. 圆角矩形,几种写法: 1, border-radius: 70px 30px 60px 0px; 按顺时针方向, 上左,上右,下右,下左, 分别定义了矩形4个角的弧度. 如图: 2.border-radius: 70px 30px 60px ; 不写第4个(下左角)的值,那么值默认与它的对角(上右角)