このサイトは、只今WEB業界で活躍中のデザイナー、プログラマーの方々の情報を集めたweb統合情報サイトです。

Archives Details

スマフォンサイトで使える! CSS3 lightbox風アニメーション

スマートフォン

2011.09.07

この記事は最終更新日から1年以上が経過しています。

CSS3では、transitionプロパティやanimation-namekeyframesを呼びだして
アニメーションを作成することができます。

それらを使用し、「ライトボックス風 アニメーション」を作りたいと思います。

(少々強引な方法ではありますが。。。)

safariやchoromeのwebkitブラウザのみ対応として作成していきます。

デモページ

http://webcyou.com/demo/css3/lightbox.html

では、まずHTMLを記述していきます。

キーとなる要素は2つ

HTML

<body id="body">
<a href="lightbox.html"></a>
<a href="#body"><img src="hoge.jpg" alt="" /></a>
</body>

bodyにidを付与しましょう。id名はなんでも良いです。

body直下にa要素を配置します。リンク先は現在のURL(ファイル)にします。

また、クラス(idでも可)を付与。こちらも名前は何でも良いです。

そして、拡大させたい画像を配置し、その画像をa要素で括ります。

リンク先はbodyに付与したid名に。

では、画像の用意を。

画像をクリックしたときに拡大表示させたいサイズで用意いたします。

その画像をcssで縮小。

画像がクリックされたときの背景を黒の透過になるように設定します。

body,htmlにmin-height,heightそれぞれ100%指定。

body直下のa要素class=”light”を

display:none;で非表示。

width,heightを100%

backgroundを以下の数値に。

CSS

body,html{
min-height:100%;
height:100%;
}
.light{
display:none;
width:100%;
height:100%;
background:rgba(0,0,0,0.85);
}

画像がクリックされたときの処理を疑似クラス:targetを使って処理の設定を行います。

まずは背景の設定から

CSS

#body:target .light {
position: absolute;
display: block;
-webkit-animation-name: 'lightIn';
-webkit-animation-duration: 0.25s;
-webkit-animation-timing-function: ease-out;
-webkit-animation-iteration-count: 1;
}

-webkit-animation-name: ‘lightIn’;でアニメーションを実行させます。

その他の設定は
-webkit-animation-duration:時間
-webkit-animation-timing-function: アニメーションのタイミング
-webkit-animation-iteration-count: 繰り返し回数

となってます。

白から黒へとなるようにアニメーション処理を記述。

CSS

@-webkit-keyframes 'lightIn' {
0% {
background: rgba(255, 255, 255, 0); }
100% {
background: rgba(0, 0, 0, 0.85); }
}

最後に画像の処理

通常は250pxで配置。

CSS

img{width:250px;}

クリックされた時の処理。

CSS

#body:target img {
position:absolute;
top: 50%;
left: 50%;
width:auto;
margin:-200px 0 0 -225px;
-webkit-animation-name: 'zoomIn';
-webkit-animation-duration: 0.6s;
-webkit-animation-timing-function: ease-out;
-webkit-animation-iteration-count: 1;
}

ウィンドウ全体の真ん中に表示される様に記述。

position:absolute;で50%とネガティブmargin
margin:-200px 0 0 -225px;で真ん中へ。

ネガティブmarginは画像(書き出し)サイズの半分に設定。

-webkit-animation-name: ‘zoomIn’;〜以下はアニメーションの呼び出しと設定。

CSS

@-webkit-keyframes 'zoomIn' {
0% {
width: 300px;
}
100% {
width: 450px;
}
}

単純に100%に書き出したサイズに設定。

完成!

デモページ

http://webcyou.com/demo/css3/lightbox.html

※ スマフォンサイトで使用する際は、画像サイズに気をつけて下さい。

Comment

Related Article

「Band’s」スマートフォン版リリースしました!

2015.06.24

スマートフォンサイト制作における SCSSディレクトリ構成、Class命名について

2014.06.01

ドラクエモンスターズ スーパーライト ジェム 50,000円分 無料GET!! と謳っている【manekin】(マネキン)をやってみた!

2014.05.24

HTML5 WebビューApp ソーシャルゲーム制作時のまとめ

2013.08.17

スマートフォン タッチイベント、距離、速さ等確認ページ

2013.03.07

weinreでiPhone/Androidをリモートデバック

2013.01.27

translateプロパティでAndroid,iPhone端末で画像がちらつく件

2012.09.13

CSS3 アイコン作成 背景指定1つ 光彩グラデーションの表現

2012.05.19

スマートフォン JavaScript タッチ、フリックイベント実装その2 「ボールを投げる」

2012.02.18

スマートフォン JavaScript タッチ、フリックイベント実装

2012.02.18

CATEGORY LIST

LATEST NEWS

Rustでつくる ふっかつのじゅもん

Rust

2025.04.29

Tauri(Rust) × AI で作る GitGUIクライアントアプリ その5

Rust

2025.04.14

う、動くぞ! Mac mini Apple M4 Pro で PS3ソフトを遊ぶ。RPCS3 Mac版を起動

Game

2025.04.12

Tauri(Rust) × AI で作る GitGUIクライアントアプリ その4

Rust

2025.04.10

Tauri(Rust) × AI で作る GitGUIクライアントアプリ その3

Rust

2025.04.08

Tauri(Rust) × AI で作る GitGUIクライアントアプリ その2

Rust

2025.04.07

時代を先取りし過ぎた ニューラルネットワークが導入されたゲーム『がんばれ森川君2号』を令和に嗜んでみる。

Game

2025.04.06

Tauri(Rust) × AI で作る GitGUIクライアントアプリ その1

Rust

2025.04.05

keyring-rsで、Macのキーチェーンに登録する。

Rust

2025.04.04

RustとWebAssemblyによるゲーム開発 Webpack5対応

Rust

2025.03.27

Rustで創る MOS 6502 CPU その3 (Cursorと共に)

Rust

2025.02.24

あけましておめでとうございます(24日経過)

イベント

2025.01.24

RANKING

Follow

SPONSOR

現在、掲載募集中です。



Links

About Us

WEBデザイナーの、WEBデザイナーによる、WEBデザイナーの為のサイト。「みんなで書こう!」と仲間を募ってみたが、結局書くのは自分だけとなってしまいました。日々のメモを綴っていきます。

Entry Profile

Graphical FrontEnd Engineer
- Daisuke Takayama

MAD CITY 北九州市で生まれ育つ。20代はバンド活動に明け暮れ、ふと「webデザイナーになりたい。」と思い、デジタルハリウッド福岡校入学。卒業後、数々の賞を受賞、web業界をざわつかせる。
現在、主に、ゲーム制作中心に港区六本木界隈で活動中。

FOLLOW US