画像全体を左右反転させると 下の画像 ( 黄緑色の外枠に白い桜 ) は backface-visibility: visible; と指定してあるので裏側が表示されます 上の画像 ( 水色の外枠に紅葉 ) は backface-visibility: hidden; と指定してあるので裏側が表示され

Similar documents
</div> </div> </body> </html> CSS の記述 (3DCubeAnime1.css) #stage ステージのスタイルを指定します 背景色を黒色で指定します 画像に軽く遠近感を出すために perspective: 1000px; と指定し perspective-orig

<!DOCTYPE html> <html> <head> <title>clipanime1</title> <meta charset="utf-8"> <link rel="stylesheet" type="text/css" href="clipanime1.css"> </head> <

1つ目は MASK という文字の下に楕円形のマスクイメージで その文字と楕円形の中に複数画像のスライドを表示するので id 属性 slide の div 要素の中に画像を5つ (images/dsc00203l.jpg images/dsc00027l.jpg images/dsc00092l.jp

leaf2-h leaf2-v leaf2 images/leaf2.png leaf3-h leaf3-v leaf3 images/leaf3.png leaf4-h leaf4-v leaf4 images/leaf4.png leaf5-h leaf5-v leaf5 images/leaf

MorphAndTextAnime の説明 HTML の記述 (MorphAndTextAnime.html) id 属性 stage の div 要素を作り その中に div 要素でボックスを記述します id 属性 div1 の div 要素を記述し 中につぎの記述をします id 属性 div2

動させることはできません 少し工夫が必要になります 元の画像を移動すれば反射画像 も一緒についてきますが 反射画像だけが移動するように見せたいので 元の画像の上に は黒色のボックスを覆い被せます ReflectAnime1 の説明 HTML の記述 (ReflectAnime1.html) id 属

<!DOCTYPE html> <html> <head> <title>spaceorbitanime</title> <meta charset="utf-8"> <link rel="stylesheet" type="text/css" href="spaceorbitanime.css">

画像 images/ SpaceShuttle.png を指定します <!DOCTYPE html> <html> <head> <title>circleanime1</title> <meta charset="utf-8"> <link rel="stylesheet" type="text/

をさせる ) ような場合に それぞれの要素に id 属性で id 名を指定している場合には CSS の id セレクタごとにアニメーションでプロパティを指定する必要があります class セレクタ.class 名 { プロパティ名 : 値 ; HTML 文書で class 属性 ( class="

Color Change

サンプル CSS OutlineAnimation.html の説明 HTML の記述 (OutlineAnimation.html) id 属性 stage の div 要素を作り その中に div 要素でボックスを記述します id 属性 div1 の div 要素を記述し 中にテキストで Out

<!DOCTYPE html> <html> <head> <title>titleanime01</title> <meta charset="utf-8"> <link rel="stylesheet" type="text/css" href="titleanime01.css"> </hea

ように記述をします div1 要素 span 要素 2 個 div3 要素 span 要素 4 個 div5 要素 span 要素 1 個 div7 要素 span 要素 2 個 div2 要素 span 要素 1 個 div4 要素 span 要素 2 個 div6 要素 span 要素 2 個

サンプル CSS web ページを開くと同時にピエロの玉乗りが動き出すアニメーションを作ってみましょう AnimeAuto の説明 HTML の記述 (AnimeAuto.html) ピエロの画像に pierrot という id を 玉の画像に ball という id を付けておきます <!DOCT

( 注 )Safari (webkit 系ブラウザ ) と Chrome(webkit にも対応 ) は テキストの輪郭や色を -webkit-text-stroke-width -webkit-text-stroke-color -webkit-text-fill-color のプロパティで描くこ

1221 Transitionの指定項目

MovingTextsAnime1 の説明 HTML の記述 (MovingTextsAnime1.html) id 属性 stage の div 要素 ( アニメーションが動くステージ ) を作り その中にボックスやテキストを記述します id 属性 div1 のdiv 要素から id 属性 div

overflow プロパティの指定は 親ボックスのスタイルに記述します overflow プロパティは position プロパティ (position: static; 以外 ) の指定がされていなと適用されません ボックスの外にはみ出た部分を表示させたくないときに hidden を使用します サ

Border Width と記述します id 属性 div3 の div 要素を記述し 中にテキストで Border Radius と記述します id 属性 div4 の div 要素を記述し 中に span 要素を1つ記述しその中にテキストで Border All<br />(Color,Widt

背景の線形グラデーションをアニメーションのように見せる方法は 前章の #div4 ボックスと同じ方法です ( 注 )Safari (webkit 系ブラウザ ) と Chrome(Webkit にも対応 ) は テキストの輪郭や色を -webkit-text-stroke-width -webkit

大メニューをマウスカーソルで hover すると 半透明の小メニューが上から伸びてきます 小メニューを hover すると メニューの背景色とテキストの色が変わります NaviMenuAnime01 の説明 HTML の記述 (NaviMenuAnime01.html) id 属性 menu-box

transform: translatex(x 方向の移動距離 ) transform: translatey(y 方向の移動距離 ) transform: translate(x 方向の移動距離, Y 方向の移動距離 ) transform: translate 関数は 移動する位置ではなく 移動

子ボックスや孫ボックスなどに position: absolute; と指定すると それぞれ親ボックスに対する絶対位置で配置できるので親ボックスの上に複数の子ボックスや孫ボックスを重ねて配置することができます トランジションやアニメーションを作成するときに非常に便利なので覚えておきましょう top

1222-A Transform Function Order (trsn

transform: skewx(x 軸の傾斜角度 ) transform: skewy(y 軸の傾斜角度 ) transform: skew(x 軸の傾斜角度, Y 軸の傾斜角度 ) skewx( ) は X 軸に沿って傾斜します skewy( ) は Y 軸に沿って傾斜します skew( ) は

1222-B Transform Using Class And Tag (classセレクタと要素型セレクタ(Tag)を使用してスタイルを適用する)

1222-A Transform Function Order (trsn

サンプル CSS1 入力フィールドの輪郭 (outline) のトランジション 入力フィールドをクリックすると変化します InputOutlineTransition の説明 HTML の記述 (InputOutlineTransition.html) id 属性 field の div 要素を作り

トリガーをわかり易くする方法

1222-A Transform Function Order (trsn

Color Change

padding( パディング ) padding プロパティでボックスの内側の余白を指定します この部分の内側には背景 ( 背景色や背景画像 ) を表示できます border( ボーダー ) border プロパティでボックスの境界線を指定します ボーダーには色 太さ 線の種類を指定できます 画像で

images/dsc00092s.jpg images/dsc00131s.jpg images/dsc00149s.jpg images/dsc00203s.jpg <!DOCTYPE html> <html> <head> <title>roundphotogallery</title> <me

ボタンのトランジション 1 トランジションを利用して ボタンを作ってみましょう ボタンを工夫することでひときわ光る web ページにすることができます もう Illustrator や Photoshop でボタンの画像を作る必要はありません JavaScript でスクリプトを書く必

1221 Transitionの指定項目

メニューのトランジション 1 (text-overflow) トランジションを利用して 面白い個性的なメニューを作ってみましょう web ページもぐっと引き立つでしょう ここで紹介するメニューも Illustrator や Photoshop でメニューの画像を作る必要はありません J

Webデザイン論

Web 設計入門

ch31.dvi

経営論集2011_07_小松先生.indd

Microsoft PowerPoint - CSS(Cascading Style Sheets)の基本.pptx

スタイルシートでデザインを整えよう

about かみのごうや たいち 大阪府出身 東京都在中 28歳 うお座 O型 ゾウと写真が好き 2xup.org を管理

Microsoft Word - 教材WebページのHTML5及びCSS3の解説

World Wide Web =WWW Web ipad Web Web HTML hyper text markup language CSS cascading style sheet Web Web HTML CSS HTML

第6回 CSS入門(つづき)

PowerPoint プレゼンテーション

JavaScript 演習 2 1

Web データ管理 HTML+CSS (7) (2 章 ) 2011/11/16( 水 ) 湘南工科大学講義資料 Web データ管理 (2011) 阿倍 1/15

要素にフォーカスが当たったときは 例えば以下のように記述する input:focus{} 疑似要素 p:first-lin{ } 一行目だけ p:first-letter{} 最初の文字だけ要素の前や後に付け加えるには 以下のように記述する p:before{content:" 記号や文字 ";}

SVG資料第6回目(その3) SVGとHTMLの間でデータを交換する

6 2 s µ µµµ µµµµ µ µ h µs µ µµµµ µ µ µ s mµµµµµ µµµ µµ µ u m µmµµµµµ µµ µ µ µ µ µ µ µ µ s 1

JIS Web Web JIS JIS 5.1.a 5.1.b 5.2.a 5.2.b 5.2.c 5.2.d 5.2.e 5.2.f 5.2.g 5.3.a 5.3.b 5.3.c 5.3.d 5.3.e 5.3.f 5.3.g 5.3.h 5.3.i 5.4.a 5.4.b 5.4.c 5.4.

Web データ管理 HTML+CSS (3) (2 章 ) 2011/10/19( 水 ) 湘南工科大学講義資料 Web データ管理 (2011) 阿倍 1/23

id, クラスで指定 (#id 名,.class 名 ) 4. 様々なセレクタ a,b :a と b を指定 a b :a の下の階層の b を指定 a>b :a の直下の b を指定 a+b :a の次の b を指定 ab :a かつ b を指定 5. 属性セレクタ a[b] :a タグ内で b

Web プログラミング 1 HTML+CSS (3) (2 章 ) 2013/5/8( 水 ) 演習室の PC のハードディスクには演習で作成したデータは保管できません 各 PC の ネットワーク接続 ショートカットからメディア情報センターのサーバーにアクセスしてください (Z ドライブとして使用で

超簡単にWebページを作成

インターネット社会の発展


6 2 1

目次 はじめに... 1 CSS?... 3 CSS の例... 4 CSS の基本の形... 5 HTML で CSS を読み込む... 7 <link> タグを置く ( ファイルを読み込む )... 9 <style> タグを置く ( スタイルを直接埋め込む ) セレクタ... 11

PowerPoint Presentation

PowerPoint Presentation

Web

Microsoft PowerPoint - [150421] CMP実習Ⅰ(2015) 橋本 CG編 第1回 幾何変換.pptx

07_経営論集2010 小松先生.indd

extCountdown.pdf

Moshimo Challenge Report

Web 設計入門

1

ウェブデザイン技能検定学科試験 2 級 1. 各設問において 正しいものは 1 を 間違っているものは 2 を 該当設問の解答欄に記せ 第 1 問 文字実体参照の は 改行しない半角スペースを表示する 第 2 問 HTML 5.2 では コメントの中に連続したハイフンを入れることができる 第 3 問

ホームページ制作 基礎編 (HTML5 CSS3 コーディング )

CSSの基礎


Microsoft Word - manual.doc

コンピュータ基礎実習 ( 上級 ) 第 13 週の例では <h1> タグが対象であることを意味します セレクタを変えることで見栄えを様々な対象に設定できます プロパティ (property) は設定する見栄え ( スタイル ) の種類のことです 値はプロパティに対する具体的な設定値です この例では文

演習室の PC のハードディスクには演習で作成したデータは保管できません 各 PC の ネットワーク接続 ショートカットからメディア情報センターのサーバーにアクセスしてください 演習名 使用するフォルダ 演習 1 Z: Web データ管理 演習 1 演習 2 Z: Web データ管

~/WWW-local/compIID (WWW IID ) $ mkdir WWW-local $ cd WWW-local $ mkdir compiid 3. Emacs index.html n (a) $ cd ~/WWW/compIID

EC 千葉のホームページで使用している CSS CSSスタイルシート ( 外部記載 ) /* == 標示枠背景に壁紙設置 ( 全画面共通 )======= */ body { background-ima


( )

1/2

■サイトを定義する

CSS

Microsoft PowerPoint - css-3days 互換モード

! "#$%&'()*+,-. STUV WXYZ[\]^_`abcdefghijklmno pqrstuvwxyz{ }~ ƒ ˆ Š Œ Ž š œ žÿ ª«±²³ µ ¹º»¼½¾ ÀÁÂÃÄ ÅÆÇÈÉÊËÌÍÎÏÐ

27短01研01斉藤.indd

Microsoft PowerPoint - css-3days 互換モード

extChatText.pdf

コンピュータ基礎実習 ( 上級 ) 第 12 週例では <h1> タグが対象であることを意味します セレクタを変えることで見栄えを様々な対象に設定できます プロパティ (property) は設定する見栄え ( スタイル ) の種類のことです 値はプロパティに対する具体的な設定値です この例では文字

SaCSS 49 LT

はじめに 本書の目的は 制作の効率化 クオリティの向上 各作業者間のスタイルの統一を 図る目安になることで 常にブラッシュアップを繰り返し 現時点での最適解の共 有に活用するものである 目次 基本仕様 ファイル ディレクトリ構成 画像ファイル 対応ブラウザ 品質管理 (X)HTML 制作 文字コード

■新聞記事

第 10 問 PHP での例外処理は PHP5.5 以降から行えるようになった 第 11 問 MySQL では サブクエリを使用することができない 第 12 問 マルチキャストにて放送を行う場合 宛先の IP アドレスはクラス D である 第 13 問 XML では 次の記述によってスタイルシートを

PowerPoint プレゼンテーション

合宿事前講座 Web 開発の基本編その 2 情報研究会モブ 薗田海樹 The. H.30 情報研究会 1

JavaScript演習


IBM Business Process Manager CSS による Coach レイアウト制御ガイド WebSphere 2014 IBM Corporation

Microsoft PowerPoint - css-3days.ppt [互換モード]

Transcription:

1342-6 応用 1 Backface Image 画像の表と裏を回転させるアニメーション 1 サンプル CSS1 外側と内側が逆回転します 裏側も見えますよ! 仕組みの説明 下の画像 ( 黄緑色の外枠に白い桜 ) と上の画像 ( 水色の外枠に紅葉 ) を 左上端を合わせて同じ位置に重ねてあります 1

画像全体を左右反転させると 下の画像 ( 黄緑色の外枠に白い桜 ) は backface-visibility: visible; と指定してあるので裏側が表示されます 上の画像 ( 水色の外枠に紅葉 ) は backface-visibility: hidden; と指定してあるので裏側が表示されなくなります 下の画像 ( 黄緑色の外枠に白い桜 ) と 上の画像 ( 水色の外枠に紅葉 ) の外枠だけ反転させた状態では 上の画像の外枠だけが表示されなくなります ( これは下の画像の裏側の外枠 ( 黄緑色 ) と上の画像の内側 ( 紅葉の画像 ) がこちら側を向いている状態になります ) 下の画像 ( 黄緑色の外枠に白い桜 ) と 上の画像 ( 水色の外枠に紅葉 ) の内側 ( 紅葉の画像 ) だけ反転させた状態では 上の画像の内側の画像だけが表示されなくなります ( これは下の画像の内側の画像 ( 白い桜 ) と上の画像の外枠 ( 水色 ) がこちら側を向いている状態になります ) BackfaceVisibilityAnime5 の説明 HTML の記述 (BackfaceVisibilityAnime5.html) id 属性 stage の div 要素を作り その中に div 要素でボックスを記述します id 属性 wrap の div 要素 ( グレーの背景 ) を記述し 中につぎの記述をします まず裏面の要素を指定します ( 表面より必ず先に記述します ) id 属性 rect1-back の div 要素を記述し 中につぎの記述をします id 属性 rect2-back の div 要素を記述し 中に白 い桜の画像 images/dsc00095m_flip_h.jpg を指定します ( 注意 : 横に回転させる裏面なの で 画像の左右を反転させた画像を使います ) つぎに表面の要素を指定します id 属性 rect1-front の div 要素を記述し 中につぎの記 述をします id 属性 rect2-front の div 要素を記述し 中に紅葉の画像 images/dsc00007m.jpg を指定します ( 注意 : 表面の画像は左右を反転させた画像を使う必 2

要はありません ) <!DOCTYPE html> <html> <head> <title>backfacevisibilityanime5</title> <meta charset="utf-8"> <link rel="stylesheet" type="text/css" href="backfacevisibilityanime5.css"> </head> <body> <p> backface-visibility を使ったアニメーション </p> <div id="stage"> <div id="wrap"> <!-- back side, front side の順で記述する --> <div id="rect1-back"> <div id="rect2-back"> <img src="images/dsc00095m_flip_h.jpg" alt="white blossoms"> <div id="rect1-front"> <div id="rect2-front"> <img src="images/dsc00007m.jpg" alt="red leaves"> </body> </html> CSS の記述 (BackfaceVisibilityAnime5.css) #stage ステージのスタイルを指定します #stage { margin: 30px 0px 0px 50px; width: 480px; height: 510px; border: solid 1px black; position: relative; #stage #wrap 要素のスタイルを指定します position は absolute 位置は top: 100px; left: 50px;(#stage ボックスの左上端を起点とした位置 ) で指定します width は 380px height は 310px で指定します 背景色を background-color: lightgray;( 薄いグレー ) で指定し ます 画像に遠近感を持たせるため perspective: 500px; と指定します 3

#stage #wrap { top: 100px; left: 50px; background-color: lightgray; perspective: 500px; -webkit-perspective: 500px; #rect1-back 要素 ( 下の画像の外枠 ) のスタイルを指定します position は absolute 位置は (#wrap ボックスの左上端を起点とした位置 ) で指定します width は 280px height は 210px で指定します ボーダーを border: solid 50px yellowgreen; ( 黄緑色 ) で指定して外枠を描いています 下の画像が左右反転した時に裏側が表示されるように backface-visibility: visible; と指定します 外枠と内側の画像を3Dで別々に動かすので transform-style: preserve-3d; と指定します アニメーション名を BackFaceAnimeB 実行時間を 20s イージングを linear 開始待ち時間を 0s 繰り返しを infinite 実行方向は normal で指定します #rect1-back { width: 280px; height: 210px; border: solid 50px yellowgreen; backface-visibility: visible; -webkit-backface-visibility: visible; transform-style: preserve-3d; -webkit-transform-style: preserve-3d; animation: BackFaceAnimeB 20s linear 0s infinite normal; -webkit-animation: BackFaceAnimeB 20s linear 0s infinite normal; アニメーション名 BackFaceAnimeB に対応するタイムライン (@keyframes) を指定します from から to の間に transform: rotatey(-360deg); で Y 軸の正方向から見て反時計回りに 360 度回転させます @keyframes BackFaceAnimeB { from { to { transform: rotatey(-360deg); 4

@-webkit-keyframes BackFaceAnimeB { from { to { -webkit-transform: rotatey(-360deg); #rect2-back 要素 ( 下の画像の内側の白い桜の画像 ) のスタイルを指定します position は absolute 位置は (#rect1-back ボックスの左上端を起点とした位置 ) で指定します width は 280px height は 210px で指定します 下の画像が左右反転した時に裏側が表示されるように backface-visibility: visible; と指定します アニメーション名を BackFaceAnimeB2 実行時間を 20s イージングを linear 開始待ち時間を 0s 繰り返しを infinite 実行方向は normal で指定します #rect2-back { width: 280px; height: 210px; backface-visibility: visible; -webkit-backface-visibility: visible; animation: BackFaceAnimeB2 20s linear 0s infinite normal; -webkit-animation: BackFaceAnimeB2 20s linear 0s infinite normal; アニメーション名 BackFaceAnimeB2 に対応するタイムライン (@keyframes) を指定します from から to の間に transform: rotatey(720deg); で Y 軸の正方向から見て時計回りに 720 度回転させます @keyframes BackFaceAnimeB2 { from { to { transform: rotatey(720deg); @-webkit-keyframes BackFaceAnimeB2 { from { to { -webkit-transform: rotatey(720deg); #rect2-back img 要素 ( 白い桜の画像 ) のスタイルを指定します position は absolute 位置は (#rect2-back ボックスの左上端を起点とした位置 ) で指定 します width は 100% height は 100% で指定します 5

#rect2-back img { width: 100%; height: 100%; #rect1-front 要素 ( 上の画像の外枠 ) のスタイルを指定します position は absolute 位置は (#wrap ボックスの左上端を起点とした位置 ) で指定します width は 280px height は 210px で指定します ボーダーを border: solid 50px cyan;( 水色 ) で指定して外枠を描いています 上の画像が左右反転した時に裏側が表示されないように backface-visibility: hidden; と指定します 外枠と内側の画像を3Dで別々に動かすので transform-style: preserve-3d; と指定します アニメーション名を BackFaceAnimeF 実行時間を 20s イージングを linear 開始待ち時間を 0s 繰り返しを infinite 実行方向は normal で指定します #rect1-front { width: 280px; height: 210px; border: solid 50px cyan; backface-visibility: hidden; -webkit-backface-visibility: hidden; transform-style: preserve-3d; -webkit-transform-style: preserve-3d; animation: BackFaceAnimeF 20s linear 0s infinite normal; -webkit-animation: BackFaceAnimeF 20s linear 0s infinite normal; アニメーション名 BackFaceAnimeF に対応するタイムライン (@keyframes) を指定します from から to の間に transform: rotatey(-360deg); で Y 軸の正方向から見て反時計回りに 360 度回転させます @keyframes BackFaceAnimeF { from { to { transform: rotatey(-360deg); @-webkit-keyframes BackFaceAnimeF { from { to { -webkit-transform: rotatey(-360deg); 6

#rect2-front 要素 ( 上の画像の内側の紅葉の画像 ) のスタイルを指定します position は absolute 位置は (#rect1-front ボックスの左上端を起点とした位置 ) で指定します width は 280px height は 210px で指定します 上の画像が左右反転した時に裏側が表示されないように backface-visibility: hidden; と指定します アニメーション名を BackFaceAnimeF2 実行時間を 20s イージングを linear 開始待ち時間を 0s 繰り返しを infinite 実行方向は normal で指定します #rect2-front { width: 280px; height: 210px; backface-visibility: hidden; -webkit-backface-visibility: hidden; animation: BackFaceAnimeF2 20s linear 0s infinite normal; -webkit-animation: BackFaceAnimeF2 20s linear 0s infinite normal; アニメーション名 BackFaceAnimeF2 に対応するタイムライン (@keyframes) を指定します from から to の間に transform: rotatey(720deg); で Y 軸の正方向から見て時計回りに 720 度回転させます @keyframes BackFaceAnimeF2 { from { to { transform: rotatey(720deg); @-webkit-keyframes BackFaceAnimeF2 { from { to { -webkit-transform: rotatey(720deg); #rect2-front img 要素 ( 紅葉の画像 ) のスタイルを指定します position は absolute 位 置は (#rect2-front ボックスの左上端を起点とした位置 ) で指定し ます width は 100% height は 100% で指定します #rect2-back img { width: 100%; height: 100%; 7

画像の表と裏を回転させるアニメーション 2 サンプル CSS2 外側と内側が逆回転します 外枠も内側も画像です BackfaceVisibilityAnime8 の説明 HTML の記述 (BackfaceVisibilityAnime8.html) id 属性 stage の div 要素を作り その中に div 要素でボックスを記述します id 属性 wrap の div 要素 ( グレーの背景 ) を記述し 中につぎの記述をします まず裏面の要素を指定します ( 表面より必ず先に記述します ) id 属性 rect1-back の div 要素を記述し 中につぎの記述をします id 属性 rect1-back-clip1 から rect1-back-clip4 の 4 つの img 要素を記述し それぞれの img 要素に桜の並木道の画像を左右反転させた画 像 images/dsc00088l_flip_h.jpg を指定します id 属性 rect2-back の div 要素を記述し 中に白い桜の画像を左右反転させた画像 images/dsc00095m_flip_h.jpg を指定します ( 注 意 : 横に回転させる裏面なので 画像の左右を反転させた画像を使います ) つぎに表面の要素を指定します id 属性 rect1-front の div 要素を記述し 中につぎの記 述をします id 属性 rect1-front-clip1 から rect1-front-clip4 の 4 つの img 要素を記述 し それぞれの img 要素に緑の並木道の画像 images/dsc00203l.jpg を指定します id 属性 8

rect2-front の div 要素を記述し 中に紅葉の画像 images/dsc00007m.jpg を指定します ( 注意 : 表面の画像は左右を反転させた画像を使う必要はありません ) <!DOCTYPE html> <html> <head> <title>backfacevisibilityanime8</title> <meta charset="utf-8"> <link rel="stylesheet" type="text/css" href="backfacevisibilityanime8.css"> </head> <body> <p> backface-visibility を使ったアニメーション </p> <div id="stage"> <div id="wrap"> <!-- back side, front side の順で記述する --> <div id="rect1-back"> <img id="rect1-back-clip1" src="images/dsc00088l_flip_h.jpg" alt="cherry road"> <img id="rect1-back-clip2" src="images/dsc00088l_flip_h.jpg" alt="cherry road"> <img id="rect1-back-clip3" src="images/dsc00088l_flip_h.jpg" alt="cherry road"> <img id="rect1-back-clip4" src="images/dsc00088l_flip_h.jpg" alt="cherry road"> <div id="rect2-back"> <img src="images/dsc00095m_flip_h.jpg" alt="white blossoms"> <div id="rect1-front"> <img id="rect1-front-clip1" src="images/dsc00203l.jpg" alt="green road"> <img id="rect1-front-clip2" src="images/dsc00203l.jpg" alt="green road"> <img id="rect1-front-clip3" src="images/dsc00203l.jpg" alt="green road"> <img id="rect1-front-clip4" src="images/dsc00203l.jpg" alt="green road"> <div id="rect2-front"> <img src="images/dsc00007m.jpg" alt="red leaves"> </body> </html> CSS の記述 (BackfaceVisibilityAnime8.css) #stage ステージのスタイルを指定します #stage { margin: 30px 0px 0px 50px; width: 480px; height: 510px; 9

border: solid 1px black; position: relative; #stage #wrap 要素のスタイルを指定します position は absolute 位置は top: 100px; left: 50px;(#stage ボックスの左上端を起点とした位置 ) で指定します width は 380px height は 310px で指定します 背景色を background-color: lightgray;( 薄いグレー ) で指定します 画像に遠近感を持たせるため perspective: 500px; と指定します #stage #wrap { top: 100px; left: 50px; background-color: lightgray; perspective: 500px; -webkit-perspective: 500px; #rect1-back 要素 ( 下の画像の外枠の桜の並木道の画像 ) のスタイルを指定します position は absolute 位置は (#wrap ボックスの左上端を起点とした位置 ) で指定します width は 380px height は 310px で指定します 下の画像が左右反転した時に裏側が表示されるように backface-visibility: visible; と指定します 外枠と内側の画像を3Dで別々に動かすので transform-style: preserve-3d; と指定します アニメーション名を BackFaceAnimeB 実行時間を 20s イージングを linear 開始待ち時間を 0s 繰り返しを infinite 実行方向は normal で指定します #rect1-back { backface-visibility: visible; -webkit-backface-visibility: visible; transform-style: preserve-3d; -webkit-transform-style: preserve-3d; animation: BackFaceAnimeB 20s linear 0s infinite normal; -webkit-animation: BackFaceAnimeB 20s linear 0s infinite normal; 10

アニメーション名 BackFaceAnimeB に対応するタイムライン (@keyframes) を指定します from から to の間に transform: rotatey(-360deg); で Y 軸の正方向から見て反時計回りに 360 度回転させます @keyframes BackFaceAnimeB { from { to { transform: rotatey(-360deg); @-webkit-keyframes BackFaceAnimeB { from { to { -webkit-transform: rotatey(-360deg); 外枠の画像の作り方 BackfaceVisibilityAnime5 のアニメーションでは 外枠は border プロパティを使用して作りましたが 外枠に画像を使おうとする場合 border の部分だけに画像を表示することはできません background-image プロパティで画像を指定して background-clip プロパティの値を border-box background-color プロパティの値を transparent で指定しても border-box の内側全体に画像が表示されてしまいます そこでつぎのような裏技を使って外枠だけに画像を表示してみます clip プロパティを使用して画像から必要な部分だけを抽出して 抽出した画像を外枠になるように貼り付けます 0px 50px 50px 330px 380px 斜線の部分を clip プロパティで抽出 して外枠の画像に します 260px 310px CSS はつぎのように指定します 11

#rect1-back-clip1 { clip: rect(0px 50px 310px 0px); #rect1-back-clip2 { clip: rect(0px 330px 50px 50px); #rect1-back-clip3 { clip: rect(0px 380px 310px 330px); #rect1-back-clip4 { clip: rect(260px 330px 310px 50px); #rect2-back 要素 ( 下の画像の内側の白い桜の画像 ) のスタイルを指定します position は absolute 位置は top: 50px; left: 50px;(#rect1-back ボックスの左上端を起点とした位置 ) で指定します width は 280px height は 210px で指定します 下の画像が左右反転した時に裏側が表示されるように backface-visibility: visible; と指定します アニメーション名を BackFaceAnimeB2 実行時間を 20s イージングを linear 開始待ち時間を 0s 繰り返しを infinite 実行方向は normal で指定します #rect2-back { top: 50px; left: 50px; width: 280px; height: 210px; backface-visibility: visible; -webkit-backface-visibility: visible; 12

animation: BackFaceAnimeB2 20s linear 0s infinite normal; -webkit-animation: BackFaceAnimeB2 20s linear 0s infinite normal; アニメーション名 BackFaceAnimeB2 に対応するタイムライン (@keyframes) を指定します from から to の間に transform: rotatey(720deg); で Y 軸の正方向から見て時計回りに 720 度回転させます @keyframes BackFaceAnimeB2 { from { to { transform: rotatey(720deg); @-webkit-keyframes BackFaceAnimeB2 { from { to { -webkit-transform: rotatey(720deg); #rect2-back img 要素 ( 白い桜の画像 ) のスタイルを指定します position は absolute 位置は (#rect2-back ボックスの左上端を起点とした位置 ) で指定 します width は 100% height は 100% で指定します #rect2-back img { width: 100%; height: 100%; #rect1-front 要素 ( 上の画像の外枠の緑の並木道の画像 ) のスタイルを指定します position は absolute 位置は (#wrap ボックスの左上端を起点とした位置 ) で指定します width は 380px height は 310px で指定します 上の画像が左右反転した時に裏側が表示されないように backface-visibility: hidden; と指定します 外枠と内側の画像を3Dで別々に動かすので transform-style: preserve-3d; と指定します アニメーション名を BackFaceAnimeF 実行時間を 20s イージングを linear 開始待ち時間を 0s 繰り返しを infinite 実行方向は normal で指定します #rect1-front { 13

backface-visibility: hidden; -webkit-backface-visibility: hidden; transform-style: preserve-3d; -webkit-transform-style: preserve-3d; animation: BackFaceAnimeF 20s linear 0s infinite normal; -webkit-animation: BackFaceAnimeF 20s linear 0s infinite normal; アニメーション名 BackFaceAnimeF に対応するタイムライン (@keyframes) を指定します from から to の間に transform: rotatey(-360deg); で Y 軸の正方向から見て反時計回りに 360 度回転させます @keyframes BackFaceAnimeF { from { to { transform: rotatey(-360deg); @-webkit-keyframes BackFaceAnimeF { from { to { -webkit-transform: rotatey(-360deg); #rect1-front 要素 ( 上の画像の外枠の緑の並木道の画像 ) も外枠だけに画像を表示するの で clip プロパティを使用して画像から必要な部分だけを抽出して 抽出した画像を外枠 になるように貼り付けます #rect1-front-clip1 { clip: rect(0px 50px 310px 0px); #rect1-front-clip2 { clip: rect(0px 330px 50px 50px); #rect1-front-clip3 { 14

clip: rect(0px 380px 310px 330px); #rect1-front-clip4 { clip: rect(260px 330px 310px 50px); #rect2-front 要素 ( 上の画像の内側の紅葉の画像 ) のスタイルを指定します position は absolute 位置は (#rect1-front ボックスの左上端を起点とした位置 ) で指定します width は 280px height は 210px で指定します 上の画像が左右反転した時に裏側が表示されないように backface-visibility: hidden; と指定します アニメーション名を BackFaceAnimeF2 実行時間を 20s イージングを linear 開始待ち時間を 0s 繰り返しを infinite 実行方向は normal で指定します #rect2-front { width: 280px; height: 210px; backface-visibility: hidden; -webkit-backface-visibility: hidden; animation: BackFaceAnimeF2 20s linear 0s infinite normal; -webkit-animation: BackFaceAnimeF2 20s linear 0s infinite normal; アニメーション名 BackFaceAnimeF2 に対応するタイムライン (@keyframes) を指定します from から to の間に transform: rotatey(720deg); で Y 軸の正方向から見て時計回りに 720 度回転させます @keyframes BackFaceAnimeF2 { from { to { transform: rotatey(720deg); @-webkit-keyframes BackFaceAnimeF2 { from { to { -webkit-transform: rotatey(720deg); 15

#rect2-front img 要素 ( 紅葉の画像 ) のスタイルを指定します position は absolute 位 置は (#rect2-front ボックスの左上端を起点とした位置 ) で指定し ます width は 100% height は 100% で指定します #rect2-back img { width: 100%; height: 100%; 画像の表と裏を回転させるアニメーション 3 サンプル CSS3 1 つの画像が外側と内側に分かれてそれぞれ逆回転します BackfaceVisibilityAnime9 の説明 HTML の記述 (BackfaceVisibilityAnime9.html) 16

id 属性 stage の div 要素を作り その中に div 要素でボックスを記述します id 属性 wrap の div 要素 ( グレーの背景 ) を記述し 中につぎの記述をします まず裏面の要素を指定します ( 表面より必ず先に記述します ) id 属性 rect1-back の div 要素を記述し 中につぎの記述をします id 属性 rect1-back-clip1 から rect1-back-clip4 の4つの img 要素を記述し それぞれの img 要素に桜と橋の画像を左右反転させた画像 images/dsc00092l_flip_h.jpg を指定します id 属性 rect2-back の div 要素を記述し この中にも桜と橋の画像を左右反転させた画像 images/dsc00092l_flip_h.jpg を指定します ( 注意 : 横に回転させる裏面なので 画像の左右を反転させた画像を使います ) つぎに表面の要素を指定します id 属性 rect1-front の div 要素を記述し 中につぎの記述をします id 属性 rect1-front-clip1 から rect1-front-clip4 の4つの img 要素を記述し それぞれの img 要素に緑の並木道の画像 images/dsc00203l.jpg を指定します id 属性 rect2-front の div 要素を記述し この中にも緑の並木道の画像 images/dsc00203l.jpg を指定します ( 注意 : 表面の画像は左右を反転させた画像を使う必要はありません ) <!DOCTYPE html> <html> <head> <title>backfacevisibilityanime9</title> <meta charset="utf-8"> <link rel="stylesheet" type="text/css" href="backfacevisibilityanime9.css"> </head> <body> <p> backface-visibility を使ったアニメーション </p> <div id="stage"> <div id="wrap"> <!-- back side, front side の順で記述する --> <div id="rect1-back"> <img id="rect1-back-clip1" src="images/dsc00092l_flip_h.jpg" alt="cherry and bridge"> <img id="rect1-back-clip2" src="images/dsc00092l_flip_h.jpg" alt="cherry and bridge"> <img id="rect1-back-clip3" src="images/dsc00092l_flip_h.jpg" alt="cherry and bridge"> <img id="rect1-back-clip4" src="images/dsc00092l_flip_h.jpg" alt="cherry and bridge"> <div id="rect2-back"> <img id="rect2-back-clip" src="images/dsc00092l_flip_h.jpg" alt="cherry and bridge"> <div id="rect1-front"> <img id="rect1-front-clip1" src="images/dsc00203l.jpg" alt="green road"> <img id="rect1-front-clip2" src="images/dsc00203l.jpg" alt="green road"> <img id="rect1-front-clip3" src="images/dsc00203l.jpg" alt="green road"> <img id="rect1-front-clip4" src="images/dsc00203l.jpg" alt="green road"> 17

<div id="rect2-front"> <img id="rect2-front-clip" src="images/dsc00203l.jpg" alt="green road"> </body> </html> CSS の記述 (BackfaceVisibilityAnime9.css) #stage ステージのスタイルを指定します BackfaceVisibilityAnime8.css の #stage 要素の 指定と同じです (CSS は省略 ) #stage #wrap 要素のスタイルを指定します BackfaceVisibilityAnime8.css の #stage #wrap 要素の指定と同じです (CSS は省略 ) #rect1-back 要素 ( 下の画像の外枠の桜と橋の画像の外枠 ) のスタイルを指定します BackfaceVisibilityAnime8.css の #rect1-back 要素の指定とほぼ同じですが 違う部分は アニメーション BackFaceAnimeB の実行時間を 30s で指定する部分だけです #rect1-back { backface-visibility: visible; -webkit-backface-visibility: visible; transform-style: preserve-3d; -webkit-transform-style: preserve-3d; animation: BackFaceAnimeB 30s linear 0s infinite normal; -webkit-animation: BackFaceAnimeB 30s linear 0s infinite normal; アニメーション名 BackFaceAnimeB に対応するタイムライン ( @keyframes ) は BackfaceVisibilityAnime8.css と違う指定です from から 10% まではそのままで 10% から 50% の間に transform: rotatey(-180deg); で Y 軸の正方向から見て反時計回りに 180 度回転 させます 50% から 60% の間は transform: rotatey(-180deg); のままにします 60% から to までの間に transform: rotatey(-180deg); から transform: rotatey(-360deg); で Y 軸の正 方向から見て反時計回りに 360 度まで回転させます 18

@keyframes BackFaceAnimeB { from { transform: rotatey(0deg); 10% { transform: rotatey(0deg); 50% { transform: rotatey(-180deg); 60% { transform: rotatey(-180deg); to { transform: rotatey(-360deg); @-webkit-keyframes BackFaceAnimeB { from { -webkit-transform: rotatey(0deg); 10% { -webkit-transform: rotatey(0deg); 50% { -webkit-transform: rotatey(-180deg); 60% { -webkit-transform: rotatey(-180deg); to { -webkit-transform: rotatey(-360deg); #rect1-back 要素 ( 下の画像の外枠の桜と橋の画像の外枠 ) も外枠だけに画像を表示するので clip プロパティを使用して画像から必要な部分だけを抽出して 抽出した画像を外枠になるように貼り付けます ackfacevisibilityanime8.css の #rect1-back 要素の #rect1-back-clip1 から #rect1-back-clip4 の指定と同じです (CSS は省略 ) #rect2-back 要素 ( 下の画像の外枠の桜と橋の画像の内側 ) のスタイルを指定します BackfaceVisibilityAnime8.css の #rect2-back 要素の指定とほぼ同じですが 違う部分は アニメーション BackFaceAnimeB2 の実行時間を 30s で指定する部分だけです #rect2-back { top: 50px; left: 50px; width: 280px; height: 210px; backface-visibility: visible; -webkit-backface-visibility: visible; animation: BackFaceAnimeB2 30s linear 0s infinite normal; -webkit-animation: BackFaceAnimeB2 30s linear 0s infinite normal; アニメーション名 BackFaceAnimeB2 に対応するタイムライン ( @keyframes ) は BackfaceVisibilityAnime8.css と違う指定です from から 10% まではそのままで 10% から 50% の間に transform: rotatey(360deg); で Y 軸の正方向から見て時計回りに 360 度回転さ せます 50% から 60% の間は transform: rotatey(360deg); のままにします 60% から to ま での間に transform: rotatey(360deg); から transform: rotatey(720deg); で Y 軸の正方向 から見て時計回りに 720 度まで回転させます 19

@keyframes BackFaceAnimeB2 { from { transform: rotatey(0deg); 10% { transform: rotatey(0deg); 50% { transform: rotatey(360deg); 60% { transform: rotatey(360deg); to { transform: rotatey(720deg); @-webkit-keyframes BackFaceAnimeB2 { from { -webkit-transform: rotatey(0deg); 10% { -webkit-transform: rotatey(0deg); 50% { -webkit-transform: rotatey(360deg); 60% { -webkit-transform: rotatey(360deg); to { -webkit-transform: rotatey(720deg); #rect2-back 要素 ( 下の画像の外枠の桜と橋の画像の内側 ) も内側だけに画像を表示するの で clip プロパティを使用して画像から必要な部分だけを抽出して 抽出した画像を内側 になるように貼り付けます #rect2-back-clip { top: -50px; left: -50px; clip: rect(50px 350px 260px 50px); #rect1-front 要素 ( 上の画像の外枠の緑の並木道の画像の外枠 ) のスタイルを指定します BackfaceVisibilityAnime8.css の #rect1-front 要素の指定とほぼ同じですが 違う部分は アニメーション BackFaceAnimeF の実行時間を 30s で指定する部分だけです #rect1-front { backface-visibility: hidden; -webkit-backface-visibility: hidden; transform-style: preserve-3d; -webkit-transform-style: preserve-3d; animation: BackFaceAnimeF 30s linear 0s infinite normal; -webkit-animation: BackFaceAnimeF 30s linear 0s infinite normal; 20

アニメーション名 BackFaceAnimeF に対応するタイムライン ( @keyframes ) は BackfaceVisibilityAnime8.css と違う指定です from から 10% まではそのままで 10% から 50% の間に transform: rotatey(-180deg); で Y 軸の正方向から見て反時計回りに 180 度回転させます 50% から 60% の間は transform: rotatey(-180deg); のままにします 60% から to までの間に transform: rotatey(-180deg); から transform: rotatey(-360deg); で Y 軸の正方向から見て反時計回りに 360 度まで回転させます @keyframes BackFaceAnimeF { from { transform: rotatey(0deg); 10% { transform: rotatey(0deg); 50% { transform: rotatey(-180deg); 60% { transform: rotatey(-180deg); to { transform: rotatey(-360deg); @-webkit-keyframes BackFaceAnimeF { from { -webkit-transform: rotatey(0deg); 10% { -webkit-transform: rotatey(0deg); 50% { -webkit-transform: rotatey(-180deg); 60% { -webkit-transform: rotatey(-180deg); to { -webkit-transform: rotatey(-360deg); #rect1-front 要素 ( 上の画像の外枠の緑の並木道の画像の外枠 ) も外枠だけに画像を表示するので clip プロパティを使用して画像から必要な部分だけを抽出して 抽出した画像を外枠になるように貼り付けます BackfaceVisibilityAnime8.css の #rect1-front 要素の #rect1-front-clip1 から #rect1-front-clip4 の指定と同じです (CSS は省略 ) #rect2-front 要素 ( 上の画像の外枠の緑の並木道の画像の内側 ) のスタイルを指定します BackfaceVisibilityAnime8.css の #rect2-front 要素の指定とほぼ同じですが 違う部分は アニメーション BackFaceAnimeF2 の実行時間を 30s で指定する部分だけです #rect2-front { top: 50px; left: 50px; width: 280px; height: 210px; backface-visibility: hidden; -webkit-backface-visibility: hidden; animation: BackFaceAnimeF2 30s linear 0s infinite normal; -webkit-animation: BackFaceAnimeF2 30s linear 0s infinite normal; 21

アニメーション名 BackFaceAnimeF2 に対応するタイムライン ( @keyframes ) は BackfaceVisibilityAnime8.css と違う指定です from から 10% まではそのままで 10% から 50% の間に transform: rotatey(360deg); で Y 軸の正方向から見て時計回りに 360 度回転させます 50% から 60% の間は transform: rotatey(360deg); のままにします 60% から to までの間に transform: rotatey(360deg); から transform: rotatey(720deg); で Y 軸の正方向から見て時計回りに 720 度まで回転させます @keyframes BackFaceAnimeF2 { from { transform: rotatey(0deg); 10% { transform: rotatey(0deg); 50% { transform: rotatey(360deg); 60% { transform: rotatey(360deg); to { transform: rotatey(720deg); @-webkit-keyframes BackFaceAnimeF2 { from { -webkit-transform: rotatey(0deg); 10% { -webkit-transform: rotatey(0deg); 50% { -webkit-transform: rotatey(360deg); 60% { -webkit-transform: rotatey(360deg); to { -webkit-transform: rotatey(720deg); #rect2-front 要素 ( 上の画像の外枠の緑の並木道の画像の内側 ) も内側だけに画像を表示 するので clip プロパティを使用して画像から必要な部分だけを抽出して 抽出した画像 を内側になるように貼り付けます #rect2-front-clip { top: -50px; left: -50px; clip: rect(50px 350px 260px 50px); 22