olidStateEveryday - Ajax,javascript,UIサンプルとチュートリアル -

Ajax,Javascriptサンプル、画像表示系の設置方法

  1. Home>
  2. 画像表示>
  3. 背景画像>
  4. オンマウスで背景画像をアニメーション

背景画像mouseleave,mootools

オンマウスで背景画像をアニメーション

  • del.icio.us に登録
  • ライブドアクリップに追加
  • Google Bookmarks に追加
  • はてなブックマークに追加
  • Yahoo!ブックマークに登録
<!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" xml:lang="ja" lang="ja">

<head>
    <title>Mootools</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <script src="js/mootools-1.2.1-core-yc.js" type="text/javascript"></script>
    <script src="js/clickMe.js" type="text/javascript"></script>
    <style type="text/css">
    /*<![CDATA[*/
    body{margin:0; padding:0; font-size:12;}
	div{height:400px;}
	#posts {
        padding: 0;
        margin: 0;
    }
    #posts li {
    	width: 650px;
    	border: 1px solid #eee;
    	background-color: #F9F9F9;
        background-image: none;
    	float: left;
        clear: both;
        list-style: none;
        margin: 0 0 5px 0;
        padding: 5px;
    }
    #posts a {
        text-decoration: none;
        color: #999;
        font-size: 0.85em;
    }
    #posts img {
        display: block;
        float: left;
        border: 1px #ccc solid;
        background: white;
        padding: 3px;
        margin: 0 10px 0 0;
    }
    #posts h1 {
        padding: 5px 0;
        margin: 0;
        color: #FF9900;
        font-size: 1.2em;
    }
    #posts p {
        margin: 0;
        padding: 0 0 10px 0;
    }
    /*]]>*/
    body,td,th {
	font-size: 12px;
}
</style>



<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /></head>

<body>
<div>
        <ol id="posts">
            <li>
                <img src="images/mejiro.jpg" alt="" />
                <h1>背景をアニメーション</h1>
                <p>IDを指定するだけなので簡単に実装できます。</p>
                <a href="#">&lt;li&gt;直下の&lt;a&gt;のリンク先がこの範囲のリンクとなります。</a>
            </li>
            <li>
                <img src="images/megane.jpg" alt="" />
                <h1>MEGANE&amp;NEKUTAI</h1>
                <p>リンクがない場合はページ移動はしません。</p>
            </li>
            <li>
                <img src="images/unknow.jpg" alt="" />
                <h1>?</h1>
                <p>?</p>
            </li>

        </ol>
</div>
</body>

</html>

背景画像をアニメーションすることが出来るJavascript。
CSSでアニメーション前の状態を設定して、Javascriptでアニメーションの終点を設定します。
複雑な動きは表現できませんが、フェードとモーションを行ってくれるので十分かもしれません。
ulやolにidをつけるだけで実装できるので、導入はとても簡単です。
IE7だと、引数エラーが出るので、実際に使う場合には検討が必要です。
製作元のコメントを呼んでいると、「IE7での確認してなかったけどtodoリストに入れたから心配しないで、やるから。」、的なコメントが見て取れます。
アップデートを待ってから実装した方が良いかもしれません。 

ダウンロード

サイトへ行き、Downloadという箇所をクリックしてファイルをダウンロードしてください。
解凍されたフォルダの中に必要なものは全て揃っていますので、すぐにでも実装することができます。

<head>~</head>の設定

通常通りJavascriptファイルを読み込ませます。

<script src="js/mootools-1.2.1-core-yc.js" type="text/javascript"></script>
<script src="js/clickMe.js" type="text/javascript"></script>

この2つのファイルを読み込ませます。
パスは任意で決定してください。

ソースの設定

実装したい、ulまたはolに以下のように「id="posts"」を指定するだけで、
内部の<li>がアニメーションの対象となります。

 

<ol id="posts">
            <li>
                <img src="images/mejiro.jpg" alt="" />
                <h1>背景をアニメーション</h1>
                <p>IDを指定するだけなので簡単に実装できます。</p>
                <a href="#">&lt;li&gt;直下の&lt;a&gt;のリンク先がこの範囲のリンクとなります。</a>
            </li>

 

liの中に<a>でリンクを設定したものを設置すると、そのリンク先が全体のリンク先となります。
これで下準備は完了です。

CSSの設定

CSSではアニメーション前の状態を定義します。
自分の好みで設定可能ですので、サンプルを見ながら設定してみてください。

Javascriptの設定(clickMe.js)

Javascriptではアニメーション後の状態を定義します。
つまり、CSSで定義した状態からJavascriptで定義したCSSの状態までアニメーションすることになります。
clickMe.js内の主な改造ポイントは以下。

mouseenter: function()

対象にオンマウスしたときの設定です。
background-positionの箇所で背景画像の出現位置と停止位置を設定しています。 

'background-position': [450, 540],

左の値が出現位置、右が停止位置です。

mouseleave: function()

ここではマウスが離れた後の状態を設定します。
元のCSSの状態に戻すのが自然ですが、訪問済みということで、あえて違う設定にしても面白いかもしれません。

element.getParent().addEvent('click', function() 

ここで対象をクリックしたときの動作を指定しています。
リンクない場合は反応しません。 

このファイルで、id="posts"など、対象となるタグを定義しているので、
該当箇所を変更することで、様々な状況に対応できると思います。 

関連スクリプト

感想

案外うっとうしくなくて、使えるかも、というのが実直な感想です。
CSSで設定したメニュー部分に使ったり、サンプルのようにリストを見やすくする為に使うのが良いかも。
他にも色々使えそうですが、少しずつ慣らしていく感じがいいかもしれないですね。 

スクリプトの使用について

SolidStateEverydayでご紹介しているAjax,Javascript等のスクリプトをご利用になる場合は、必ず製作元のサイトで使用ライセンスを確認してください。ご利用は自己責任でお願い致します。

結局、エックスサーバーなんですよね。