1. 程式人生 > 其它 >CSS3畫鋼鐵俠

CSS3畫鋼鐵俠

技術標籤:css3

鋼鐵俠效果

鋼鐵俠頭盔在螢幕內放大發光,在縮小變暗。
效果圖:

變化前:
在這裡插入圖片描述
變化後

在這裡插入圖片描述
不斷來畫變化

 然後我們再來怎麼編寫吧:
 html:主要有div盒子通過相對定位和絕對定位佈局組合而成
<div id="box2">
        
        <div id="box_1"></div>
        <div id="box_2"></div>
        <div id="box_3"> 
            <
div
id="mi_1">
</div> <div id="mi_2"></div> </div> <div id="box-4"></div> <div id="box-5"></div> <div id="box_6"></div> <div id
="eye_1">
</div> <div id="eye_2"></div> <div id="bot_1"></div> <div id="bot_2"></div> <div id="bot_3"></div> <div id="bot_4"></div> <
div
id="bot_5">
</div> </div>
css部分:
	主要有設計到邊框的的應用,盒子陰影,css3動畫
	組合而成。
	1.通過boder-radius設定頭盔外邊框的弧度,同時也可以用這個方法話頭部的2個角和2個眼睛。
	2.講外面的盒子設定為相對定位,你面的元素設定為絕對定位
	子絕父相,便於操作
	2.transform講開始的大小設定為原來的0.5倍。
	3.通過animation為該盒子設定關鍵幀動畫,在一定時間內倍數變		大,背景顏色變紅。
	4.通過邊框的將其他方位的背景顏色設為透明色。就畫出了兩邊的三角。
	5.嘴巴可以通過transform的旋轉屬性將高度小的盒子通過相對定位進行拼接。
	6.最左下和右下部分的尖角弧度,也是通過邊框來縮小的,只給di設定高度不設定寬度,在影藏另外的兩個角就完成了這個尖角的繪製。
	7.眼睛和外邊框同時關鍵幀動畫新增邊框陰影,形成發紅光的效果。
	#box2{
    width: 300px;
    height: 490px;
    /* border: 1px solid white; */
    position: relative;
    margin: 100px auto;

    border-top-left-radius: 22% 7%;
    border-top-right-radius: 22% 7%;
    /* background-color: red; */
    border-bottom-left-radius: 45%;
    border-bottom-right-radius: 45%;
    transform: scale(0.5,0.5);
    animation: run 5s linear infinite alternate;
    /* display: none; */
}
	
div[id*="box_"]{
    /* border: 1px solid #000; */
    position: absolute;
    background-color: white;
    opacity: 50%;
}
#box_1{
    width: 100px;
    height: 95px;
    position: absolute;
    border-top-left-radius: 110% 50%;
    border-top-right-radius: 20% 100%;
    top: 5px;

}
#box_2{
    width: 100px;
    height: 95px;
    top: 5px;
    position: absolute;
    left: 200px;
    border-top-right-radius: 110% 50%;
    border-top-left-radius: 20% 100%;
}
div[id*="box-"]{
    position: absolute;
}
#box_3{
    width: 300px;
    height: 200px;
    top: 100px ;

}

#box-4{
    width: 0;
    height: 30px;
    top: 300px;
    border-top: 90px solid rgba(255, 255, 255, 0.5);
    border-right: 50px solid  rgba(255, 255, 255, 0.5);
    border-left: 45px solid transparent;
    border-bottom: 50px solid transparent;
    left: 0px;
}
#box-5{
    width: 0;
    height: 30px;
    left: 205px;
    top: 300px;
    border-top: 90px solid  rgba(255, 255, 255, 0.5);
    border-left: 50px solid rgba(255, 255, 255, 0.5); 
    border-right: 45px solid transparent;
    border-bottom: 50px solid transparent;
}
#box_6{
    width: 110px;
    height: 170px;
    left: 95px;
    top: 300px;

}



/* 眼睛 */
div[id*="eye"]{
    width: 80px;
    height: 30px;
    background-color:rgba(243, 242, 190, 0.7);
    position: absolute;
    animation: run 5s linear infinite alternate;
}
#eye_1{
    left: 20px;
    top: 180px;
    transform: rotate(20deg);
    border-bottom-right-radius:75% 100% ;
    border-bottom-left-radius:75% 50% ;
}
#eye_2{
    left: 200px;
    top: 180px;
    transform: rotate(-20deg);
    border-bottom-left-radius:75% 100% ;
    border-bottom-right-radius:75% 50% ;
}


/* 嘴 */
div[id*="bot"]{
    background-color: #000;
    position: absolute;
    margin-left: 10px;
    opacity: 50%;
}
#bot_1{
    width: 40px;
    height: 5px;
    left: 60px;
    top: 380px;
    transform: rotate(60deg);

}
#bot_2{
    width: 30px;
    height: 5px;
    left: 85px;
    top: 390px;
    transform: rotate(-30deg);
    }
#bot_3{
    width: 70px;
    height: 5px;
    left: 112px;
    top: 383px;
   
}
#bot_4{
    width: 30px;
    height: 5px;
    left: 179px;
    top: 390px;
    transform: rotate(30deg);
}
#bot_5{
    width: 40px;
    height: 5px;
    left: 196px;
    top: 382px;
    transform: rotate(-60deg);
    }
/* 中部 */
#box2 #mi_1{
    width: 0;
    height: 0;
    border-top: 130px solid transparent;
    border-left: 15px solid #000;
    border-right: 0 solid transparent;
    border-bottom: 50px solid transparent;
    position: absolute;
    top: -30px;
}
#box2 #mi_2{
    width: 0;
    height: 0;
    border-top: 130px solid transparent;
    border-left: 0 solid transparent;
    border-right: 15px solid #000;
    border-bottom: 50px solid transparent;
    position: absolute;
    left: 285px;
    top: -30px;
}


@keyframes run{
        0%{}
        100%{
            box-shadow: 0px 0px 30px 20px rgba(255, 255, 255, 0.5),
            inset 0px 0px 10px 5px rgba(255, 255, 255, 0.5);
            background-color: rgba(241, 86, 86, 0.3);
            transform: scale(1,1);
            }
}