この記事では、HTML と CSS3 で 2D と 3D を組み合わせてアニメーション効果を実現する方法を紹介します。必要な方は参考にしていただければ幸いです。
フロントエンド作業では通常 2D および 3D アニメーション効果を使用しませんが、これらのアニメーション効果を完成させるには基本的に JS または jQ を使用しますが、最も基本的なものを忘れていませんか?
昨日これらを見直して 2 つの小さな例を書きました
まず HTML で div を定義します
<div class="heart"></div>
p が必要なだけで、疑似要素を使用します
<style> /* 基于父级定位 */ .heart{ position: relative; } /* 使用伪元素画出两个图像,使用图形拼接来造出一个心 */ .heart::after, .heart::before{ content: ""; position: absolute; top: 100px; left: 0; right: 0; margin: auto; width: 50px; height: 80px; background: red; /* borde-radius 有四个值 分别对应四个角,分别对应 左上 右上 右下 左下 */ border-radius: 50px 50px 0 0; /* 旋转元素,两个一起旋转。等下只需要调动一个即可 */ transform: rotate(-45deg); transform-origin: 0 100%; } /* 旋转元素 使它和before伪元素 拼接成一个心 */ .heart::after{ left: -100px; transform: rotate(45deg); transform-origin: 100% 100%; } </style>
上記のコードでは、豊かな心臓を取得します
上記の心臓の描画と同様に、疑似要素を使用して記述します
まず div を定義し、taiji という名前を付けます
<div id="taiji"></div>
次に、擬似要素を使用して、その作成方法を見てみましょう。これ以上の苦労はせずに、コードに直接進みましょう
<style type="text/css"> #taiji { position: relative; width: 200px; height: 100px; background: white; border-color: black; border-style: solid; border-width: 4px 4px 100px 4px; /*变成圆形*/ border-radius: 50%; margin: 100px auto; /* 定义动画 名称 时长 匀速 无限循环播放 */ animation: myfirst 4s linear infinite; } #taiji::before, #taiji::after { content: " "; position: absolute; top: 50%; left: 0; width: 25px; height: 25px; background: white; border: 38px solid black; border-radius: 50%; } #taiji::after { left: 50%; background: black; border-color: white; } /* 定义动画 */ @keyframes myfirst { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } </style>
効果は次のとおりです:
おすすめの関連記事:
CSS で画像を拡大するにはどうすればよいですか? (クールな特殊効果の例)
以上がHTML と CSS3 で 2D と 3D を組み合わせてアニメーション効果を実現するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。