2008.02.25

フローティングブログパーツの作り方、こっそり教えます(後編)

イメージ:フローティングブログパーツの作り方、こっそり教えます(後編)

アナログ系プログラミングでいこう ♯10
鈴木教久(paperboy&co.)

バックナンバー

こんにちは。paperboy&co.の鈴木です。

寒さの中にも、春らしさがちらほら。花粉も徐々に増えてきましたね。今回は、前回に続きフローティングブログパーツの作り方をご紹介します。フローティングバナーやフローティング広告にも応用できますので、ぜひご活用ください。

フローティングの仕組みを大解剖!

みなさんが知りたいフローティングとは、ずばりページ全体がうっすらと暗くなり(背景透過)、その上に重なるようにページ中央にFlashが表示される形じゃないでしょうか。

フローティングブログパーツの例「ウェブシネマ小説 / DIGITALSCAPE」
フローティングブログパーツの例
「ウェブシネマ小説 / DIGITALSCAPE」

今回は、まさに上記のようなフローティングFlashの仕組みを解剖します。

フローティングのプチ情報

フローティング広告は、バナー広告の約2倍印象度が高い!? → 気になる広告効果測定調査結果はこちら

フローティングFlashの仕組み

まず最初に、ざっとフローティングFlashの仕組みを理解しておきましょう。大きくは、下記の2つの仕組みから成り立っています。

1. ブラウザの表示エリア全体に背景を重ねる
1-1. ブラウザの表示エリアサイズを取得する
1-2. 現在のスクロールポジションを取得する
1-3. ブロックの位置とサイズを表示エリアにあわせる
1-4. 透過PNGを表示する
2. 重ねたFlashを透過させる

※透過PNGの表示については、過去のコラム「アルファチャネル透過PNGで差をつけろ!(その1その2)」をご参照ください。

一見難しそうなフローティングですが、仕組みは意外とシンプルなことがわかりますね。ただし、表示エリア全体に背景を重ねる部分はちょっと難しそう。そこで、もう少しかみ砕いてご説明します。

1.ブラウザの表示エリア全体に背景を重ねる方法

フローティングでページ全体が暗くなる表現は、あたかもウェブページ全体にブロック要素が重なっている見えますが実は、そうではありません! 現在見えている表示エリアのみを覆っているのです。そして、スクロールやウィンドウのリサイズにあわせて毎秒、ブロック要素のリサイズと表示位置を調整しているのです。

計算式で表しますと、

  • (画面の左上のX座標) = (スクロールX座標)
  • (画面の左上のY座標) = (スクロールY座標)

となります。

そのポジションに、表示エリアと同じ大きさの <div> ブロックを絶対座標配置させれば完了です。

【例】 フローティング用 <div> ブロックのHTML

<div style="position:absolute; top:画面の左上のX座標; left:画面の左上のY座標; width:画面横幅; height:画面高さ"></div>

1 2

このエントリーをブックマークする

このエントリーにトラックバックする

このエントリーのトラックバックURL
http://withd.jp/mt/mt-tb.cgi/1986


GREEインタビュー イマジカデジタルスケープ