老师,在汉克狗案例中,我想要狗的大小随窗口的缩放而同步,这个怎么修改代码呀
来源:2-12 汉克狗最终动画效果
蒹葭苍沧
2020-04-20 23:05:03
<!DOCTYPE html> <html> <head> <title>Cartoon dog</title> <meta charset="utf-8"> </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> <style type="text/css"> :root{ --h1:#1b2f90; --bg:#f9f9f6; --t:2s; } body{ background:url(bg.png) no-repeat center top; background-size:100% auto; } .dog{ width:300px; height:400px; position:relative; top:380px; } .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:var(--bg); border-radius:50%; top:20px; z-index:1; } .chin{ width:104px; height:36px; background:var(--bg); border-radius:52px/0px 0px 36px 36px; top:60px; z-index:1; } .ear{ width:16px; height:70px; background:var(--h1); border-radius:50%; position:absolute; left:50%; top:34px; z-index:0; 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:var(--h1); border-radius:15px/17px 23px 2px 13px; position:absolute; left:50%; top:10px; z-index:1; transform:translate(17px,0) rotate(-10deg); } .eye{ width:24px; height:24px; background:var(--bg); border-radius:12px/13px 12px 12px 2px; position:absolute; left:50%; top:20px; z-index:2; 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:#e79101; border-radius:50%; position:absolute; top:1px; left:3px; box-shadow:0 0 8px 0 #000 inset; animation:translate var(--t) ease-out infinite; } .pupil:before{ width:18px; height:18px; background:#000; border-radius:50%; position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); content:''; } .pupil:after{ width:5px; height:5px; background:#fff; border-radius:50%; position:absolute; left:3px; top:7px; content:''; } .nose{ width:62px; height:32px; top:42px; background:#363035; z-index:3; border-radius:31px/10px 10px 22px 22px; } .nose:before{ content:''; width:60px; height:10px; position:absolute; left:50%; top:1px; transform:translate(-50%,0); border-radius:30px/8px 8px 2px 2px; background:linear-gradient(30deg,#fff 0%,#b1aeb1 15%,#b1aeb1 50%,#544d53 100%); } .nostril{ width:15px; height:4px; position:absolute; left:50%; top:19px; background:linear-gradient(0deg,#363035 0%,#000 100%); 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:27px; background:#671316; border-radius:34px/0px 0px 27px 27px; z-index:1; box-shadow:0 0 4 #000 inset; top:68px; animation:open var(--t) ease-out infinite; } .mouth:before{ width:68px; height:8px; background:var(--bg); border-radius:34px/0px 0px 5px 5px; content:''; position:absolute; z-index:1; } .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.right{ 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 0 #000 inset; position:absolute; top:0px; animation:extend var(--t) ease-out infinite; } .body{ width:66px; height:70px; background:var(--bg); border-radius:50%; top:89px; } .arm{ width:26px; height:40px; background:var(--bg); border-radius:13px/20px 0 14px 20px; position:absolute; top:5px; left:50%; transform:translate(-43px,0) rotate(21deg); } .arm:before{ content:''; width:5px; height:20px; border-radius:5px/10px 0 0 10px; box-shadow:-1px 0 0 0 rgba(200,200,200,0.5); position:absolute; top:14px; right:6px; transform:rotate(-5deg); } .arm.right{ transform:scale(-1,1) translate(-17px,0) rotate(21deg); } .leg{ width:29px; height:50px; background:linear-gradient(-85deg,#ddd 0%,#ddd 5%,#fff 20%,#fff 100%); border-radius:15px/5px 5px 15px 45px; position:absolute; top:40px; left:50%; 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; bottom:-8px; left:2px; 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;} 100%{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> </body> </html>
1回答
好帮手慕粉
2020-04-21
同学你好,关于同学的问题回答如下:
1、代码实现的是正确的。
2、同学说的功能是要使用适配实现的,但是我们现阶段还没学到,是第三阶段会学到的东西:
同学可以学到了以后再研究。
祝学习愉快~
相似问题