老师,为什么除了耳朵,其他地方都不动?

来源:2-12 汉克狗最终动画效果

慕码人0396984

2019-11-24 07:08:57

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>Cartoon Dog</title>

<style type="text/css">

:root {

     --h1:#1b2f90;

     --bg:#f9f9f6;

     --t:4s;

}

body{

background-color: #ffc400;

}

.dog{ 

width:300px;

height:400px;

position:relative; 

}

.center{

position: absolute;

left:50%;

transform: translate(-50%,0);

}

.forehead{

width:102px;

height:48px;

background: var(--bg);

border-radius: 51px/ 40px 40px 8px 8px;

z-index: 1;


}

.face{

width:110px;

height:68px;

background-color: var(--bg);

border-radius: 50%;

top:20px;

z-index: 1;

}

.chin{

width:104px;

height:36px;

background-color: var(--bg);

border-radius: 52px / 0px 0px 36px 36px;

top:60px;

z-index: 1;

}

       .ear{

            width:16px;

height:70px;

background-color: var(--h1);

border-radius: 50%;

z-index: 0;

position:absolute;

left:50%;

top:34px;

transform-origin:50% 0;

           transform: translate(-42px,0) rotate(10deg);

           animation:rotate var(--t) ease-out infinite;

       }

.ear.right{   

        transform:scale(-1,1) translate(-26px,0) rotate(10deg);

        animation:rotate-r var(--t) ease-out infinite;

       }

       

       .birthmark{

            width:30px;

height:36px;

background-color: var(--h1);

border-radius:15px /17px 22px 3px 13px;

z-index: 1;

position:absolute;

left:50%;

top:25px;

transform:translate(18px,0) rotate(-10deg);

      

       }

       .eye{

            width:24px;

height:24px;

background-color: var(--bg);

border-radius: 12px/13px 12px 12px 2px;

z-index: 2;

position:absolute;

left:50%;

top:34px;

transform-origin:50% 0;

           transform: translate(-44px,0) rotate(10deg);

           box-shadow: 1px 0px 0px 0px #000 inset,-1px 0px 5px 1px #ddd;

           overflow: hidden;

       }

       .eye.right{

        transform:scale(-1,1) translate(-21px,0) rotate(10deg);

        box-shadow: 1px 0px 0px 0px #000 inset;


       }

       .pupil{

            width:26px;

height:26px;

background-color:#e79101;

border-radius:50%;

position: absolute;

left:3px;

top:1px;

box-shadow: 0 0 8px 0#000 inset;

animation:translate var(--t) ease-out infinite;


       }

       .pupil:before{

        width:18px;

        height:18px;

        background-color: #000;

        border-radius: 50%;

        position: absolute;

        left:50%;

        top:50%;

        transform:translate(-50%,-50%);

        content:'';

       }

       .pupil:after{

        width:5px;

        height:5px;

        background-color: #fff;

        border-radius: 50%;

        position: absolute;

        left:3px;

        top:7px;

       

        content:'';

       }

       .nose:before{

           content:'';

           width:60px;

           height: 15px;

           border-radius: 30px /8px 8px 2px 2px;

           position: absolute;

left:50%;

top:1px;

transform: translate(-50%,0);

background: linear-gradient(30deg,#fff 0%,#fff 8%,#b1aeb1 15%,#b1aeb1 50%,#544d53 100%);

       }

       .nose{

        width:62px;

        height:32px;

        background-color: #000;

        border-radius: 31px /10px 10px 22px 22px;

        top:55px;

        z-index:2;

       }

       .nostril{

        width:15px;

        height:4px;

        top:19px;

        background: linear-gradient(0deg,#363035 0%,#000 100%);

        position: absolute;

        left:50%;

        border-radius:50%;

        transform:translate(-21px,0) rotate(30deg);

        animation:resize var(--t) ease-out infinite;

       }

       .nostril.right{

        transform:scale(-1,1) translate(-7px,0) rotate(30deg);

       }

       .mouth{

            width:68px;

height:25px;

background: #671316;

border-radius:34px/0px 0px 27px 27px;

z-index:1;

box-shadow: 0 0 4px 0 #000 inset;

top:80px;

       }

       .mouth:before{

        width:68px;

        height:8px;

        background:var(--bg);

        border-radius:34px/0px 0px 5px 5px;

        content:'';

        position:absolute;

        z-index: 1;

        animation:open var(--t) ease-out infinite;

       }

       .teen{

        width:8px;

        height:3px;

        background:var(--bg);

        border-radius:4px/0px 0px 0px 1px;

        position: absolute;

        left: 50%;

        top:7px;

        transform: translate(-8px,0);

        z-index: 1;

       }

       .teen{

        transform:scale(-1,1) translate(0px,0) ;

        border-right:0.5px solid #ddd;

       }

       .tongue{

        width:34px;

        height:14px;

        background:#a2504f;

        border-radius:17px/0px 0px 7px 7px;

        z-index: 0;

        box-shadow: 0 0 4px #111 inset;

        top:0px;

        animation:extend var(--t) ease-out infinite;

       }

       .body{

        width:66px;

        height:70px;

        background:var(--bg);

        top:89px;

        border-radius:50%;

       }

       .arm{

        width:26px;

        height:40px;

        background:var(--bg);

        position: absolute;

        left: 50%;

        top:5px;

        border-radius:13px / 20px 0 14px 20px;

        transform: translate(-43px,0) rotate(21deg);

       }

       .arm:before{

        content: '';

        width:5px;

        height: 20px;

        border-radius: 5px/10px 0px 0px 10px;

        box-shadow: -1px 0 0px 0 rgba(200,200,200,0.5);

        position: absolute;

        right:6px;

        top:15px;

        transform: rotate(-5deg);

       }

       .arm.right{

        transform: scale(-1,1) translate(-17px,0) rotate(21deg);

       }

       .leg{

        width:29px;

        height: 50px;

        background:linear-gradient(-90deg,#ddd 0%,#ddd 20%,#fff 20%,#fff 100%);

        position: absolute;

        left: 50%;

        top:40px;

        border-radius: 15px/5px 5px 15px 45px;

        transform:translate(-32px,0);

       }

       .leg.right{

        transform: scale(-1,1) translate(-3px,0);

       }

       .foot{

        width:29px;

        height: 15px;

        background:linear-gradient(-120deg,#ddd 0%,#ddd 10%,#fff 30%,#fff 100%);

        position: absolute;

        left: 2px;

        bottom:-8px;

        border-radius: 15px/10px 10px 5px 5px;

    

       }

       .belly{

        z-index: 2;

        width:60px;

        height:36px;

        background:linear-gradient(0deg,#ddd 0%,#fff 20%,#fff 100%);

        border-radius:30px / 0 0 36px 36px;

        top:34px;

       }

       @keyframes rotate{

       0%{transform: translate(-42px,0) rotate(10deg);}

        50%{transform: translate(-42px,0) rotate(30deg);}

        100%{transform: translate(-42px,0) rotate(10deg);}

       }

      @keyframes rotate-r{

    0%{transform: scale(-1,1) translate(-26px,0) rotate(10deg);}

    50%{transform: scale(-1,1) translate(-26px,0) rotate(30deg);}

    100%{transform: scale(-1,1) translate(-26px,0) rotate(10deg);}   

       @keyframes translate{

           0%{left:3px;}

           50%{left:6px;}

           110%{left:3px;}

            }

        @keyframes resize{

    0%{height:4px;}

    50%{height:3px;}

    100%{height:4px;}

}

       @keyframes extend{

       0%{height:14px;}

    50%{height:23px;}

    100%{height:14px;}

}

@keyframes open{

    0%{height:27px;

    border-radius:34px / 0px 0px 27px 27px;}

    50%{height:20px;

     border-radius:34px / 0px 0px 20px 20px;}

    100%{height:27px;

    border-radius:34px / 0px 0px 27px 27px;}

}



            

            

            

</style>

</head>

<body>

<div class="dog center">

<div class="forehead center"></div>

<div class="face center"></div>

<div class="chin center"></div>

<div class="ear"></div>

<div class="ear right"></div>

    <div class="birthmark"></div>

<div class="eye">

<div class="pupil"></div>

</div>

<div class="eye right">

<div class="pupil"></div>

</div>

<div class="nose center">

<div class="nostril"></div>

<div class="nostril right"></div>

</div>

<div class="mouth center">

<div class="teen "></div>

<div class="teen right"></div>

<div class="tongue center"></div>

</div>

<div class="body center">

<div class="arm"></div>

<div class="arm right"></div>

<div class="leg">

<div class="foot"></div>

</div>

<div class="leg right">

<div class="foot"></div>

</div>

<div class="belly center"></div>

</div>

</div>


</body>

</html>


写回答

1回答

好帮手慕夭夭

2019-11-24

同学你好,这是因为如下动画缺少结尾的大括号,添加上即可:

http://img.mukewang.com/climg/5dd9febd096fb73907020319.jpg

另外,嘴巴的动画不太好看。在课程中, 是下部分在动,而同学设置的是上部分在动。建议参考如下修改:

http://img.mukewang.com/climg/5dd9feea0958b9a306840802.jpg

高度太大,改小点更好:

http://img.mukewang.com/climg/5dd9ff0e093ea8eb07120532.jpg

时间也调整一下:

http://img.mukewang.com/climg/5dd9ff1c09e362f204130192.jpg

如果我的回答帮助到了你,欢迎采纳,祝学习愉快~

0

0 学习 · 40143 问题

查看课程