CSS3アニメーションでつくるインターフェイス表現

第7回 追加情報をアニメーションで表示するボタン

この記事を読むのに必要な時間:およそ 7 分

今回のお題は,アニメーションするボタンだ。マウスポインタを重ねると追加情報が現れるサンプル1)⁠Animated Buttonsの表現を参考にした。例によって,HTMLとCSSの構成はわかりやすく改め,コードも絞り込んである。

サンプル1 CSS3: Animatied buttons

ボタンの静的なデザイン

<body>要素に書くコードは以下のように構成した。各ボタンを<a>要素class属性"btn")として<div>要素class属性"container")の中に納めた。ボタンの<a>要素は,それぞれ3つの<span>要素class属性"btn-text"と"btn-slide-text"および"btn-icon")をパーツとして含んでいる図1)⁠3つめの<span>要素の中には,さらに空の<span>要素が加えてあり,CSSで矢印を背景画像として与える。

図1 すべてが表示されたボタンと構成要素のクラス名

図1 すべてが表示されたボタンと構成要素のクラス名

<div class="container">
    <a href="#" class="btn">
        <span class="btn-text">Simple interface</span> 
        <span class="btn-slide-text">CSS3</span>
        <span class="btn-icon"><span></span></span>
    </a>
    <a href="#" class="btn">
        <span class="btn-text">Dynamic contents</span>
        <span class="btn-slide-text">CreateJS</span>
        <span class="btn-icon"><span></span></span>
    </a>
    <a href="#" class="btn">
        <span class="btn-text">3D contents</span>
        <span class="btn-slide-text">Away3D</span>
        <span class="btn-icon"><span></span></span>
    </a>
</div>

この<body>要素の記述に対して,つぎのような<style>要素を与える。各ボタンはすべてが表示され,まだアニメーションもマウスインタラクションもない(前掲図1)⁠なお,CSSにベンダープレフィックスを付けなくて済むように,<script>要素で-prefix-freeを読み込んでいる(第1回のベンダープレフィックスと-prefix-freeの項参照)⁠また,Google FontsのOswaldを使った(第5回のGoogle Fontsと回り込みの解除参照)⁠

<script src="lib/prefixfree.min.js" type="text/javascript"></script>
<link href="http://fonts.googleapis.com/css?family=Oswald" rel="stylesheet" type="text/css" />
<style>
body {
    margin:0;
    padding:0;
    background: aliceblue;
    font-family: 'Oswald', Arial, sans-serif;
}
.container {
    width: 320px;
    margin: 0 auto;
    padding: 20px 0;
}
.btn {
    background: linear-gradient(to bottom, lightsteelblue, steelblue);
    padding-left: 20px;
    padding-right: 180px;
    height: 38px;
    position: relative;
    border: 1px solid slategray;
    box-shadow: 0px 1px 1px rgba(255, 255, 255, 0.8) inset,
        1px 1px 3px rgba(0, 0, 0, 0.2),
        0px 0px 0px 4px rgba(188, 188, 188, 0.5);
    border-radius: 20px;
    float: left;
    clear: both;
    margin: 10px 0px;
    color: white;
    text-decoration: none;
}
.btn-text,
.btn-slide-text {
    font-size: 18px;
    white-space: nowrap;
}
.btn-text {
    padding-top: 5px;
    display: block;
    text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.3);
    color: midnightblue;
}
.btn-slide-text {
    position: absolute;
    top: 0px;
    right: 52px;
    width: 100px;
    background: dimgray;
    text-shadow: 0px -1px 1px black;
    color: white;
    text-transform: uppercase;
    text-indent: 10px;
    overflow: hidden;
    line-height: 38px;
    box-shadow: -1px 0px 1px rgba(255, 255, 255, 0.4),
        1px 1px 2px rgba(0, 0, 0, 0.2) inset;
}
.btn-icon {
    position: absolute;
    right: 0px;
    top: 0px;
    height: 100%;
    width: 52px;
    border-left: 1px solid slategray;
    box-shadow: 1px 0px 1px rgba(255, 255, 255, 0.4) inset;
}
.btn-icon span {
    width: 38px;
    height: 38px;
    opacity: 0.7;
    position: absolute;
    left: 50%;
    top: 50%;
    margin: -20px 0px 0px -20px;
    background: url(images/arrow_right.png) no-repeat 50% 55%;
}
</style>

著者プロフィール

野中文雄(のなかふみお)

ソフトウェアトレーナー,テクニカルライター,オーサリングエンジニア。上智大学法学部卒,慶応義塾大学大学院経営管理研究科修士課程修了(MBA)。独立系パソコン販売会社で,総務・人事,企画,外資系企業担当営業などに携わる。その後,マルチメディアコンテンツ制作会社に転職。ソフトウェアトレーニング,コンテンツ制作などの業務を担当する。2001年11月に独立。Web制作者に向けた情報発信プロジェクトF-siteにも参加する。株式会社ロクナナ取締役(非常勤)。

URLhttp://www.FumioNonaka.com/

著書

コメント

コメントの記入