如何用HTML做一个吃豆人?

首先做一个项目的先想如何去实现它。比如做一个吃豆人,如图:


167b84dcbf0d3ed647b6b8c4abd75f92.jpg

首先,需要分析这个吃豆人的组成部分。
上半部分嘴,下半部分嘴,豆基本就三个部分组成。
其次,怎么才能让它吃豆呢?
需要嘴上下动,需要豆向着嘴的方向移动。

第一步,制作上部分嘴。代码如下:
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <style type="text/css">
        #shang{/*给这个id加属性和参数*/
            width: 0px;/*给一个宽度,*/
            height: 0px;/*给一个高度,*/
            /*border-bottom:边界底部 solid:立方体 */
            border-bottom: 50px solid yellow;/*上面的图形底部包裹一个50像素黄色的立方体*/
            border-top: 50px solid yellow;/*上面的图形上部包裹一个50像素黄色的立方体*/
            border-left: 50px solid yellow;/*上面的图形左部包裹一个50像素黄色的立方体*/
            /*transparent:透明的*/
            border-right: 50px solid transparent;/*上面的图形右部包裹一个50像素头透明的立方体*/
            /*radius:半径*/
            border-radius: 50px;/*把现在正方体变成50像素的圆角,就是把正方形变成圆形。*/
        }
    </style>
    <body>
        <div id="shang"><!--创建一个id代表上部分嘴-->
            
        </div>
    </body>
</html>

结果如图:


2017-12-02_193245.png
第二步,下半部分嘴,大部分代码都是一样的。复制粘贴就好。有一点不一样的地方。代码如下:
    #xia{
        width: 0px;
        height: 0px;
        border-bottom: 50px solid yellow;
        border-top: 50px solid yellow;
        border-left: 50px solid yellow;
        border-right: 50px solid transparent;
        border-radius: 50px;
        /*margin:边缘*/
        margin-top: -100px;/*边缘向上60像素,为了与上部分嘴重合*/
    }
第三步,加入动画让嘴动起来。上部分嘴向下动,下部分嘴向上动,形成咬合的动作。代码如下:
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <style type="text/css">
        #shang{/*给这个id加属性和参数*/
            width: 0px;/*给一个宽度,*/
            height: 0px;/*给一个高度,*/
            /*border-bottom:边界底部 solid:立方体 */
            border-bottom: 50px solid yellow;/*上面的图形底部包裹一个50像素黄色的立方体*/
            border-top: 50px solid yellow;/*上面的图形上部包裹一个50像素黄色的立方体*/
            border-left: 50px solid yellow;/*上面的图形左部包裹一个50像素黄色的立方体*/
            /*transparent:透明的*/
            border-right: 50px solid transparent;/*上面的图形右部包裹一个50像素头透明的立方体*/
            /*radius:半径*/
            border-radius: 50px;/*把现在正方体变成50像素的圆角,就是把正方形变成圆形。*/
            animation: shang 0.5s infinite ease;
        }
        #xia{
            width: 0px;
            height: 0px;
            border-bottom: 50px solid yellow;
            border-top: 50px solid yellow;
            border-left: 50px solid yellow;
            border-right: 50px solid transparent;
            border-radius: 50px;
            /*margin:边缘*/
            margin-top: -100px;/*边缘向上60像素,为了与上部分嘴重合*/
            animation: xia 0.5s infinite ease;
        }
        
        @keyframes shang{
            0%{ /*transform:表示按什么方式来改变状态*/
                transform: rotate(270deg);/*旋转270度*/
            }
            
            50%{
                transform: rotate(360deg);
            }
            
            100%{
                transform: rotate(270deg);
            }
        }
    
        @keyframes xia{
            0%{
                transform: rotate(90deg);
            }
            
            50%{
                transform: rotate(0deg);
            }
            
            100%{
                transform: rotate(90deg);
            }
        }
    </style>
    <body>
        <div id="shang"></div><!--创建一个id代表上部分嘴-->
        <div id="xia"></div>
    </body>
</html>
第四步,做豆。代码如下:
    #dou{
        width: 20px;/*宽20像素*/
        height: 20px;/*高20像素*/
        position: absolute;/*设置球的绝对位置*/
        top: 50px;/*离顶部50像素*/
        left: 200px;/*离左边200像素*/
        background: yellow;/*背景颜色为黄色*/
        border-radius:50px;/*圆角50像素*/
    }

这样的豆代码复制三个,做成三个豆。

第五步,让豆向嘴的方向动起来。整体代码如下:
    <!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title></title>
    </head>
    <style>
        #shang{
            width:0px;
            height: 0px;
            border-top: 50px solid yellow;
            border-bottom: 50px solid yellow;
            border-left: 50px solid yellow;
            border-right: 50px solid transparent;
            border-radius: 50px;
            animation: shang 0.5s infinite ease;
        }
        
        #xia{
            width: 0px;
            height: 0px;
            border-bottom: 50px solid yellow;
            border-top: 50px solid yellow;
            border-left: 50px solid yellow;
            border-right: 50px solid transparent;
            border-radius: 50px;
            /*margin:边缘*/
            margin-top: -100px;/*边缘向上60像素,为了与上部分嘴重合*/
            animation: xia 0.5s infinite ease;
        }
        
        
        #dou{
            width: 20px;/*宽20像素*/
            height: 20px;/*高20像素*/
            position: absolute;/*设置球的绝对位置*/
            top:50px;/*离顶部30像素*/
            left: 200px;/*离左边160像素*/
            background: yellow;/*背景颜色为黄色*/
            border-radius:50px;/*圆角50像素*/
            animation: dou 1s 0.33s infinite ease;/*0.33s代表延迟多少时间以后再运动*/
        }
        
        #dou1{
            width:20px;
            height: 20px;
            background: yellow;
            border-radius:50px;
            position: absolute;
            top: 50px;
            left: 200px;
            animation: dou 1s 0.66s infinite ease;
        }
        
        #dou2{
            width:20px;
            height: 20px;
            border-radius:50px;
            background: yellow;
            position: absolute;
            top: 50px;
            left: 200px;
            animation: dou 1s 0.99s infinite ease;
        }
        
    @keyframes shang{
        0%{
            transform: rotate(270deg);
        }
        
        50%{
            transform: rotate(360deg);
        }
        
        100%{
            transform: rotate(270deg);
        }
    }
    
    @keyframes xia{
        0%{
            transform: rotate(90deg);
        }
        
        50%{
            transform: rotate(0deg);
        }
        
        100%{
            transform: rotate(90deg);
        }
    }
    @keyframes dou{
        0%{
            left: 160px;
        }
        
        100%{
            left: 10px;
        }
    }
    
    
    </style>
    <body>
        <div id="shang"></div>
        <div id="xia"></div>
        <div id="dou"></div>
        <div id="dou1"></div>
        <div id="dou2"></div>
        </div>

    </body>
</html>

注意:豆动画一个新参数,延迟参数。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,186评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,858评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,620评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,888评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,009评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,149评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,204评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,956评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,385评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,698评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,863评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,544评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,185评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,899评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,141评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,684评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,750评论 2 351

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,898评论 25 707
  • 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥ios动画全貌。在这里你可以看...
    每天刷两次牙阅读 8,478评论 6 30
  • 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌。在这里你可以看...
    F麦子阅读 5,105评论 5 13
  • 出发前一天,我们还在工作。好像已经习惯了到处飞,一年不出去个几次都觉得不对劲。在飞机上忍受着邻居无可理喻的味道,落...
    iMuse视觉理想国阅读 1,801评论 0 0
  • 面对人山人海的旅游潮,威海到是一个休闲度假的好地方,面朝大海,好好欣赏一番!
    春华秋实bj阅读 226评论 0 0