Twitterの「これはいい画像ですね!」のUIを3分で実装してみる

これはいい画像ですね!

Twitterアカウントを持っている人なら一度は見ているであろう、設定完了画面で出てくる「ありがとう。設定を保存しました」や「これはいい画像ですね!」のUI。

ページ表示時にベロンと出てきて、一定時間が経過したらスルスルと消えていく例のアレですが、ユーザへの通知手段として非常にわかりやすいなあと思いませんでしたか?ためしてみたら意外とカンタンに実装できたので、実装方法をまとめてみます。

用意するもの

今回は jQuery 1.3.2 と timer プラグイン 0.1.0 を使いました。timerプラグインは1.1.xもしくは1.2.xに対応してるよ「It's for jQuery (1.1.x and 1.2.x)」と記載されていましたが、1.3.2でも問題なく動作しました。

動作デモ

まずは実際のコードをご覧ください。

「これはいい画像ですね!」動作デモ

コード解説

動作しましたか?それでは解説です。

HTML

通知したい部分のブロック要素を<body>タグの直下に配置します。このときブロック要素(#notification)に直接メッセージを書くのではなく、内部ブロック要素(.message)にメッセージを入れるほうが細かいレイアウトがしやすいのでオススメです。

(略)
</head>
<body>
<div id="notification">
<p class="message">これはいい画像ですね!</p>
</div>
<div id="wrapper">
(略)

CSS

通知したい部分のブロック要素は、display:none;が設定されているのがミソです。

#notification {
  display: none;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  background: #eee;
}
#notification .message {
  width: 880px;
  margin: 0 auto;
  padding: 15px 10px;
  font-size: 140%;
}

Javascript

読み込みが完了した直後に表示→一定期間そのまま→再度非表示 は以下のコードで。

// 読み込み完了直後に実行
$(document).ready(function(){
	notification('#notification');
});
// メッセージ通知を表示
function notification(element)
{
	$(element).slideDown('fast');
	$.timer(5000, function(timer){
		$(element).slideUp('fast');
		timer.stop();
	});
}

おさらいすると、以下のような流れです。

  1. $(document).ready() で読み込み直後にnotification()を呼ぶ
  2. $(element).slideDown() で非表示になっている#notification をベロンと表示
  3. $.timer() で5秒間静止
  4. $(element).slideUp() で再度非表示

※$(document).ready() の部分は <body>タグのonloadイベントを代用しても動作すると思います。

ひょっとしたら3分かからずに実装できてしまうので、ぜひお試しを。

Twitterアカウントあります

Twitterアカウント持ってますので、もしよければフォローしてください。

トラックバック(0)

このブログ記事を参照しているブログ一覧: Twitterの「これはいい画像ですね!」のUIを3分で実装してみる

このブログ記事に対するトラックバックURL: http://monolog.spanstyle.com/mt/mt-tb.cgi/428

このサイトについて

自分用リンク

Powered by Movable Type 4.22-ja

PR

このブログ記事について

このページは、ishiiが2009年11月18日 17:17に書いたブログ記事です。

ひとつ前のブログ記事は「Firefox で swfobject の Flash が動作しない原因は Page Speed 1.3 だった」です。

次のブログ記事は「symfonyでカスタムバリデータを使ってフィルタを実装する」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

アイテム

  • swfobject.png
  • symfony.png
  • doclean.png
  • clean.png
  • twitterui.png
  • php5.2.8-warning.png
  • pagesaver.png
  • analytics.png
  • Munsell Hue Test.png
  • Munsell Hue Test0.png