あのエフェクトがこんなに簡単に:魅力のAjaxライブラリAdobe Spry入門
たにぐちまこと(H2O Space.)
2007/09/05 20:30
Spryは、「デザイナのための」と銘打つだけあって、非常に簡単な記述でスクリプトを作ることができる。JavaScriptはほとんど使わずに、できるだけHTMLの拡張属性や独自の記述でまかなおうという努力が見える。
ウィジットの完成度と応用性
前回も紹介したが、筆者がSpryで最も魅力的に感じているのは、豊富なウィジットだ。アコーディオンパネルやタブビューを簡単に構築することができる。また、他のライブラリでは、CSSが既存のものに干渉してしまい、ウィジットの見た目が崩れてしまったり、既存ページ内の要素が崩れてしまうということが多々あったのだ。
しかし、Spryの場合は今までそのようなケースに当たってしまったことはない。クラスによってCSSが明確に定義されており、どこに組み込んでもclass属性で適切にスタイルが適用されるようになっている。また、例えば次のCSSファイルを見てみよう。
@charset "UTF-8";
/* SpryAccordion.css - Revision: Spry Preview Release 1.4 */
/* Copyright (c) 2006. Adobe Systems Incorporated. All rights reserved. */
/* This is the selector for the main Accordion container. For our default style,
* we draw borders on the left, right, and bottom. The top border of the Accordion
* will be rendered by the first AccordionPanelTab which never moves.
*
* If you want to constrain the width of the Accordion widget, set a width on
* the Accordion container. By default, our accordion expands horizontally to fill
* up available space.
*
* The name of the class ("Accordion") used in this selector is not necessary
* to make the widget function. You can use any class name you want to style the
* Accordion container.
*/
.Accordion {
border-left: solid 1px gray;
border-right: solid 1px black;
border-bottom: solid 1px gray;
overflow: hidden;
}
/* This is the selector for the AccordionPanel container which houses the
* panel tab and a panel content area. It doesn't render visually, but we
* make sure that it has zero margin and padding.
*
* The name of the class ("AccordionPanel") used in this selector is not necessary
* to make the widget function. You can use any class name you want to style an
* accordion panel container.
*/
.AccordionPanel {
margin: 0px;
padding: 0px;
}
...
これは、アコーディオンウィジット用のCSSファイルの一部である。これを見ると、コメントが適切に作られている上、クラス名も分かりやすくなっているため、改造が容易である。実際、ウィジットを実践に使ってみても、かなりカスタマイズを施して、オリジナルのパーツとして使うことができた。
組み込みの方法であるが、スクリプトは以下のようになっている。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta http-equiv="Content-Script-Type" content="text/javascript" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<title>アコーディオンウィジットを使う</title>
<script src="widgets/accordion/SpryAccordion.js" type="text/javascript"></script>
<link href="widgets/accordion/SpryAccordion.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="Accordion1" class="Accordion">
<div class="AccordionPanel">
<div class="AccordionPanelTab">1つめのコンテンツ</div>
<div class="AccordionPanelContent">1つめのコンテンツの内容です</div>
</div>
<div class="AccordionPanel">
<div class="AccordionPanelTab">2つめのコンテンツ</div>
<div class="AccordionPanelContent">2つめのコンテンツの内容です</div>
</div>
</div>
<script type="text/javascript">
var Accordion1 = new Spry.Widget.Accordion("Accordion1");
</script>
</body>
</html>
またもや、JavaScriptはbody要素の一番下に1行あるだけである。これだけで、美しいエフェクトでアコーディオンが開閉するのだ(図4)。これを見たときは筆者は感動してしまった。
図4:簡単な記述でアコーディオンを実現
- 0人の推薦記事
- 0人がクリップ
-
ソーシャルブックマーク(-)
- トラックバック(0)
- 特集: 魅力のAjaxライブラリAdobe Spry入門 (4件)
- 今日のトップ記事
- 2日前
- 4日前
- 6日前
- 7日前
- ホワイトペーパー
- 読者投票
いよいよ7月11日に売り出される「iPhone 3G」。今のところの購入予定は?
- 話題のタグ
Windows
Apache
SOA
フレームワーク
開発環境
リファレンス
Mozilla
Leopard
ブラウザ
MySQL
Firefox
Linux
オープンソース
Webデザイン
Ruby
Eclipse
Java
Off Topic
Google
HTML
Safari
iPhone 3G
Database
Mac OS X
XHTML
Solaris
Tips
C/C++
Apple
Internet Explorer
iPhone
Flash
CSS
Ajax
Adobe
PHP
JavaScript
イロハ
仮想化
Firefox 3
小技
ライブラリ
RIA
iPod touch
Python
Opera
Microsoft
server
Webアプリケーション開発
入門
話題のタグを見る »
MS、Vistaとの互換性をチェックできる「Compatibility Center」リリースへ
「似非」SOAを見破る10の方法
Firefox 3のアドオンやテーマ管理を容易にする
openSUSE 11.0を試してみた
フォトレポート:世界各国の優秀な技術者がパリに集結--Imagine Cup 2008世界大会
バッチ処理でデータベース活用:4つの課題と5つの解決ポイント
Rubyでどう書く?:RubyでWord文書を作成する
ZDNet Japan Green IT
DELL連載第4回〜「Microsoft System Center」
「未来の、その先」をどう提言していくか
Techno Exchange
今知るべき仮想化情報