目次
Transform
transform 属性とパースペクティブを関数値として使用します:
パースペクティブとトランスフォームを設定したら、transform-style アトリビュートを使用します。このアトリビュートには、 flat と prepare-3d という 2 つのパラメータがあります。 flat はデフォルト値で、平面を示します。後者、preserve-3d は 3D パースペクティブを示します。
Animation
Animation的简化版本transition
ホームページ ウェブフロントエンド htmlチュートリアル CSS 変換 変換とアニメーション anime_html/css_WEB-ITnose

CSS 変換 変換とアニメーション anime_html/css_WEB-ITnose

Jun 21, 2016 am 08:58 AM

Transform

Web ページを作成するとき、主に 2 次元空間を操作しますが、位置を絶対的に配置する場合、Z 軸が開くと理解できますか?新しい空間次元が追加されますが、これは単なる階層化にすぎません。CSS には、Transform というより強力な属性があります。

Transform は文字通りの意味から「変化」を意味することがわかり、その値には主に

  • rotate 回転

  • 歪みスキュー

  • スケールスケール

  • 移動平行移動

  • 行列変形行列

回転を例に挙げます。

3D Transform での回転には、rotateX(angle) X 軸回転、rotateY(angle) Y 軸回転、rotateZ( の 3 つの方法があります。角度) Z 軸の回転 🎜>XYZ は平面の回転軸を表し、中の値はその角度を表します。

幾何学的に見てください。これではまだ 3D については言及されていませんが、

次に、非常に重要な属性であるパー​​スペクティブ属性について説明します。

この属性は、上記の回転アニメーションを含めて、遠近法を意味します。遠近法属性が存在しない場合、表示されるものはもはや遠近法ではありません。長方形の回転と同じですが、

perspective の後の値は数値であり、

transform 属性とパースペクティブを関数値として使用します:


  • または、パースペクティブ属性を直接使用します:

transform: perspective(800);
ログイン後にコピー
    パースペクティブは、キャンバス (親要素) 上に記述することも、キャンバス上にバリアントが 1 つしかない場合は要素自体に直接記述することもできますが、複数のバリアントがある場合はほとんど違いはありません。この図のように、黄色の部分ではパースがカラー ブロックに直接書き込まれ、紫色の部分ではパースが親コンテナに書き込まれます。キャンバスをパース要素として使用しているため、サブ要素の形状が異なります。
  • パースペクティブの値が 3D 変形効果の強さを決定します。距離が遠いほど、遠くにあるキューブ (ルービック キューブなど) が回転するのと同じように、その視覚効果は比較的弱くなります。あなたの目、その効果はより強力です。
ここでは、新しい Transform パラメーター、translateZ を使用します。
perspective: 800;
ログイン後にコピー
RotateZ を使用すると、すでに Z 軸を見つけることができ、translateZ を使用して Z 軸の座標を処理できます。要素が目の前に近くまたは遠くに見えるようにします。その値は、親要素のパースペクティブ値に基づきます。

たとえば、親要素のパースペクティブ値が 800 の場合、子要素の translationZ の値が小さいほど、子要素は遠くにあり、小さく見えます。子要素のtranslateZが800に近いが800未満(790+など)の場合、要素は画面全体に表示されます(ブラウザを超えることに注意してください)。これは、要素が次の場所に到着したことを意味するためです。目の前に小さな葉があり、その後ろにもすべてを覆うことができます。子要素の数が 800 を超えると、その要素が目の奥に到達し、頭の後ろにあるものが見えなくなり、要素が消えてしまいます。

ps: 上の 3 つの平面回転の図では、Y 軸または Y 軸が 90 度回転するとグラフィックが消えていることがわかります。これは、90 度で平面が接触しているためです。視線が平行だと面に厚みがないので消えてしまいます。角度が大きくなると再び現れますが、これを視覚的な死角と呼びます。

perspective-origin 属性


パースペクティブについて簡単に理解した後、パースペクティブの原点である Perspective-origin 属性を見てみましょう。
この属性は理解するのが簡単です。フラッシュを使用できる場合、パースペクティブ原点は、アニメーション化するときにこの配置ポイントを中心に回転します。 . スピンとか。 CSS3 のデフォルトの視点原点は要素の中心です。

transform-style アトリビュート

パースペクティブとトランスフォームを設定したら、transform-style アトリビュートを使用します。このアトリビュートには、 flat と prepare-3d という 2 つのパラメータがあります。 flat はデフォルト値で、平面を示します。後者、preserve-3d は 3D パースペクティブを示します。

これは 3D 空間を開くためのメソッドであることを簡単に理解できます:

transform-style:preserve-3d;
この属性は、使用しない限り画像に影響を与えません。フラット。

3D 世界には、オブジェクトが透明でない限り、オブジェクトを通してその背後にあるオブジェクトを見ることができないというもう 1 つの原則があります。ここでは属性 backface-visibility を使用します。その値が hidden の場合、それは通常の 3D です。世界。

Animation

现在简单的几何原理都有了,我们可以让平面变3D的过程动态的演示出来了,就是css3的 Animation。
在了解Animation之前,我们必须了解另一个特殊的东西,Keyframes。

这里是图形图像里的一个基础概念就是关键帧,每一个关键帧代表动画的一个过程节点,Keyframes具有其自己的语法规则,他的命名是 由”@keyframes”开头,后面紧接着是这个“动画的名称”加上一对花括号“{}”,括号中就是一些不同时间段样式规则,有点像我们css的样式写 法一样。例如:

@-moz-keyframes name{     0% {       -moz-transform:rotateY(0deg) rotateX(0deg) rotateZ(0deg) translateZ(0px);     }     25% {       -moz-transform:rotateY(90deg) rotateX(0deg) rotateZ(0deg) translateZ(0px);     }     50% {       -moz-transform:rotateY(180deg) rotateX(0deg) rotateZ(0deg) translateZ(0px);     }     75% {       -moz-transform:rotateY(90deg) rotateX(0deg) rotateZ(0deg) translateZ(0px);     }     100% {       -moz-transform:rotateY(0eg) rotateX(0deg) rotateZ(0deg) translateZ(0px);     }  }
ログイン後にコピー

这里,name是动画的名称,百分比里边只要写你要实现的动画就行,可以写位移啊,色值变化啊,透明度变化啊等等。
然后我们再看一下Animation的几个常用属性:

animation-name:'name';/*动画属性名,也就是我们前面keyframes定义的动画名*/animation-duration: 2s;/*动画持续时间*/animation-timing-function: linear;/*动画频率,有匀速,先快后慢    linear:动画以匀速运动ease:默认值,开始慢,中间快,结束慢,不对称ease-in:开始慢,后面快ease-out:开始快,后面慢ease-in-out:开始慢,中间快,结束慢,对称(注意与ease的区别)cubic-bezier(n,n,n,n):可以使用cubic-bezier自定义速度,n的取值从0到1*/animation-delay: 2s;/*动画延迟时间*/animation-iteration-count: 1;/*定义循环资料,infinite为无限次*/animation-direction: alternate;/*定义动画方式, normal 动画仅正向播放。 alternate 动画正向播放奇数次迭代,并反向播放偶数次迭代。在反向播放周期中,与 animation-timing-function 关联的值也会反转。*/
ログイン後にコピー

Animation的简化版本transition

搜集资的时候发现还有一个transition过度属性,据说他可以称为animation的简化版本。因为animation属性比transition属性多包含keyframes规则显式控制当前帧的属性,因而更加灵活。
例如:

.contain{width: 392px; position: relative; bottom: -20px; opacity: 0;}.contain.on{ bottom: 0; opacity: 1;-webkit-transform:translate(-100px,100px); transition:opacity 500ms ease-out 2s,transform 1500ms ease-in-out;  -webkit-animation:opacity 500ms ease-out 2s,transform 1500ms ease-in-out;-moz-animation:opacity 500ms ease-out 2s,transform 1500ms ease-in-out;-ms-animation:opacity 500ms ease-out 2s,transform 1500ms ease-in-out;-o-animation:opacity 500ms ease-out 2s,transform 1500ms ease-in-out;  }当符合某种条件时为contain添加.on类,即可有立即x移动-100px,y移动100px,历时1500ms;延时2s 历时500ms的“由下往上 由透明变为实体”的动画效果。注意针对性写,而不是写all ease-in 500ms;性能太低语法:transition: property duration timing-function delay;
ログイン後にコピー

但是需要注意的是:火狐浏览器对于transition最后一个数值要求很严格,如果延时为0时我们往往会忽略后面的S,则火狐上无效果!
transition 遇到的特殊问题:
.aa完成设定动作之后会恢复原样,换做animation 设置forwards属性依旧会恢复原样。
解决方案:将.aa{display:inline-block;}或者设置为display:block;

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

< Progress>の目的は何ですか 要素? < Progress>の目的は何ですか 要素? Mar 21, 2025 pm 12:34 PM

この記事では、HTML< Progress>について説明します。要素、その目的、スタイリング、および< meter>との違い要素。主な焦点は、< Progress>を使用することです。タスクの完了と< Meter> statiの場合

< datalist>の目的は何ですか 要素? < datalist>の目的は何ですか 要素? Mar 21, 2025 pm 12:33 PM

この記事では、HTML< Datalist>について説明します。オートコンプリートの提案を提供し、ユーザーエクスペリエンスの改善、エラーの削減によりフォームを強化する要素。

HTML5のクロスブラウザー互換性のベストプラクティスは何ですか? HTML5のクロスブラウザー互換性のベストプラクティスは何ですか? Mar 17, 2025 pm 12:20 PM

記事では、HTML5クロスブラウザーの互換性を確保するためのベストプラクティスについて説明し、機能検出、プログレッシブエンハンスメント、およびテスト方法に焦点を当てています。

< meter>の目的は何ですか 要素? < meter>の目的は何ですか 要素? Mar 21, 2025 pm 12:35 PM

この記事では、html< meter>について説明します。要素は、範囲内でスカラーまたは分数値を表示するために使用され、Web開発におけるその一般的なアプリケーション。それは差別化< Meter> < Progress>およびex

HTML5フォーム検証属性を使用してユーザー入力を検証するにはどうすればよいですか? HTML5フォーム検証属性を使用してユーザー入力を検証するにはどうすればよいですか? Mar 17, 2025 pm 12:27 PM

この記事では、ブラウザのユーザー入力を直接検証するために、必要、パターン、MIN、MAX、および長さの制限などのHTML5フォーム検証属性を使用して説明します。

ビューポートメタタグとは何ですか?レスポンシブデザインにとってなぜそれが重要なのですか? ビューポートメタタグとは何ですか?レスポンシブデザインにとってなぜそれが重要なのですか? Mar 20, 2025 pm 05:56 PM

この記事では、モバイルデバイスのレスポンシブWebデザインに不可欠なViewportメタタグについて説明します。適切な使用により、最適なコンテンツのスケーリングとユーザーの相互作用が保証され、誤用が設計とアクセシビリティの問題につながる可能性があることを説明しています。

< iframe>の目的は何ですか タグ?使用する際のセキュリティ上の考慮事項は何ですか? < iframe>の目的は何ですか タグ?使用する際のセキュリティ上の考慮事項は何ですか? Mar 20, 2025 pm 06:05 PM

この記事では、< iframe>外部コンテンツをWebページ、その一般的な用途、セキュリティリスク、およびオブジェクトタグやAPIなどの代替案に埋め込む際のタグの目的。

Giteeページ静的なWebサイトの展開に失敗しました:単一のファイル404エラーをトラブルシューティングと解決する方法 Giteeページ静的なWebサイトの展開に失敗しました:単一のファイル404エラーをトラブルシューティングと解決する方法 Apr 04, 2025 pm 11:54 PM

GiteEpages静的Webサイトの展開が失敗しました:404エラーのトラブルシューティングと解像度Giteeを使用する

See all articles