[Scrollovers]
http://www.scrollovers.com/
くるくる回るリンクホバーです。
実装も簡単で、スタイルシートで表示カスタマイズもできます。

[ダウンロードと設定]
Scrolloversのページの[How do I add it to my pages?]章の、
[download the file here]リンクから該当のスクリプトをダウンロードすることができます。
ソースをダウンロードせずに、URLを直接指定することも可能となっています。

<ダウンロードした場合>
<script type="text/javascript" src="xxxxxx/scrollovers.js"></script>

<URL 指定>
<script type="text/javascript" src="http://www.scrollovers.com/js/scrollovers.js"></script>

[実装方法]
リンクホバー効果をつけたいアンカータグに、type:scrolloverを指定します。
実際の効果は、アンカータグにclass指定をし、スタイルシートで決定します。
◆HTML
<a href="リンク先URL" class="havorscroll" type="scrollover">[リンク]</a>
◆CSSファイル
a.havorscroll {
  /* 通常リンクのスタイルを記述 */
}
a.havorscroll em:first-line {
    /* ロールオーバー時のスタイルを記述 */
}

[オプション]
今回のスクリプトは基本的にtype指定をするだけなので、
オプション設定は特にありません。
ただ、直接JavaScriptコードをいじってカスタマイズすることは可能です。
サンプルページによると、次のような変更をすることができます。
定数はソースの上部にまとめて宣言されているのですぐに見つけられます。

【scrollovers_ScrollSpeed】
現在[3]に設定されている値を変更すると、スクロールの速さを変更できます。

【scrollovers_ScrollDownOnMouseOver】
この値を[false]にすると、
上から下へ回転していたリンクが、下から上へと回転するようになります。
(この場合、マウスオーバー時と通常のスタイル指定も逆になります。)

【scrollovers_TypeName】
この値で、指定すべきtype名(scrollover)を決定しています。

[仕組み(簡単に)]
スタイルシートを見るとわかるのですが、このスクリプトを実行することにより、
emタグで囲んだリンク文字と同じ文字列を持つブロック要素を生成しています。
それを指定したイベント(MouseOver時とMouseOut時)で切り替えるよう設定してありました。
CSSでclass:scrollover_Nudgeのtopの値を変更することで
切り替え位置のカスタマイズが可能です。

[サンプル]
こんな感じになります。
☆☆☆TEST CLICK☆☆☆

大きな文字の方が効果がよくわかります。
★★★TEST CLICK★★★

もちろん、背景色の切り替え、背景画像設定も可能です。
★☆★TEST CLICK★☆★

※ブログ内に実装しようとすると、デフォルトで設定されている
色々なスタイルシートに邪魔されてしまうことがあります(はまりました。)

 

[glider.js]
http://www.missingmethod.com/projects/glider.html
紙芝居のようなスライド表示を行うJavaScriptライブラリです。

今回はオプション引数と、簡単なCSSカスタマイズを行います。

[Gliderオブジェクト]
var my_glider = new Glider('[スライドID]');

[オプション引数]
Gliderオブジェクト生成時に、配列の形式でオプションを指定できます。
オプション指定できるのは、以下の二つの数値です。

【duration】
スライドが切り替わる時間(動いている時間)を指定します。
デフォルトは1.0(秒)です。

【frequency】
スライドが静止している時間を指定します。
デフォルトは3(秒)です。
var my_glider = new Glider('[スライドID]', {duration:[数値],frequency:[数値]});
配列の形であれば、どちらか一方だけを指定してもかまいません。

[duration時間>frequency時間]と指定すると、
物理的にスライド表示ができなくなるため、
画面がぶれてしまうので注意が必要です。

[CSSカスタマイズ]
各class名とidが明記されているので、それぞれのスタイルをカスタマイズするのは簡単です。
プログラム上指定されているので、以下のクラス名は変更できません。

*scroller
*section
*controls(アンカー指定用クラス)

そのほかに関しては(主にid名)は変更しても問題なくプログラムは動きます。
今回のサンプルでは各スライドに指定するidを独自のものに変更し、
それぞれに背景をつけます。
<div id="スライドID">
  <div class="scroller">
    <div class="content">
      <div class="section" id="【このidを指定】">
        <!-- ここにコンテンツを記述 -->
      </div>
      ・・・・・・
    </div>
  </div>      
</div>

各スライドに指定するidを独自に設定できるので、
画像だけでなく、きちんとしたHTMLコンテンツも簡単に組み込めますね。

[サンプル]
オプション引数に[{duration:0.5,frequency:2}]を指定し、
各スライドには以下のCSSを設定しました。
div#1枚目のid{
    background:#f3f3f3;
    color:#aa7b7b;
}
div#2枚目のid{
    background:#feffdc;
    color:#aa7b7b;
}
div#3枚目のid{
    background:url(../images/back.gif);
    color:#fb08b3;
    font-weight:bold;
}

※文字色と背景を指定しただけです。。。

Terakoya Work – Glider
Terakoya Work - Glider

(※キャッシュ再生成中の為、SimpleAPIのサムネイルが表示されないようです。)

[class:contentについて]
contentクラスはjsファイル上は特に明示的に使用されていません。
しかし、cssファイル内で、[width: 10000px;]の指定がされています。
この指定により、画像のスライドを表現しています。
(widthの数値が小さいと、上下の移動になります。)

スライド自体は行われますが、contentクラス名を変える場合、
[width: 10000px;]の指定を忘れずにする必要があります。

 

[glider.js]
http://www.missingmethod.com/projects/glider.html
紙芝居のようなスライド表示を行うJavaScriptライブラリです。

前回、基本的なスライド表示ができるようになったので
今回はGliderオブジェクトで使用できるメソッドについて調べていきます。

[Gliderオブジェクト]
var my_glider = new Glider('[スライドID]');

◆指定スライドを表示
指定スライドを表示する場合、ID[controls]内にリンクを用意し、
リンクのアンカーにスライド表示する要素IDを指定すればOKです。
<a href="#section1">Section 1</a>
このときglider.js内部でmoveToメソッドがよばれています。
my_glider.moveTo(element, container, options);
—–
element:アンカーで指定したスライドid
container:要素ID[scroller]のオブジェクト(スライド表示部)
options:スライドする時間間隔
—–
これらの引数が内部で自動的に設定されています。

◆前のスライド・次のスライドを表示
Gliderオブジェクトのメソッドで、前のスライド・次のスライドを表示させることができます。
[前のスライドを表示]
my_glider.previous();
[次のスライドを表示]
my_glider.next();

リンクのOnClickイベント発生時に、上記メソッドがよばれるように設定しておけば
「前へ」「次へ」の動きを実装できます。
[使用例]
<a href="#" onclick="my_glider.previous();return false;"><< 前へ</a>
<a href="#" onclick="my_glider.next();return false;">次へ >></a>

◆スライド自動開始
特に設定を行わなければ、このスライドショーは
リンクを押したときにしか動作しません。
HTMLのロードと同時にスライドを開始させるには、
JavaScriptのタイマー機能を使います。
my_glider.start();

start()メソッドを呼び出すと、glider.js内部でtimerオブジェクトが使用され
一定の間隔で自動的にスライドがきりかわります。

◆サンプルです
前回と同じ写真スライドに、前へ・次へリンクをつけ、
ロード時には自動スライドを行うよう設定しました。
Terakoya Work – Glider
Terakoya Work - Glider

(※キャッシュ再生成中の為、SimpleAPIのサムネイルが表示されないようです。)

※ID[controls]内のリンクをクリックし指定スライドを表示させると、
内部でClick時にstop()メソッドが呼び出されてしまうため、
自動表示はストップしてしまいます。
※ループするスライドではないので、最後のスライドから最初のスライドへ
いくときの動きは若干不自然かもしれないです。

次回はGliderオブジェクト生成時のオプション引数についてです。

 

[glider.js]
http://www.missingmethod.com/projects/glider.html
紙芝居のようなスライド表示を行うJavaScriptライブラリです。
写真だけでなく、divタグ内に指定したコンテンツなら全て紙芝居表示できます。

◆基本的なスライドの設定
【HTML】
◇移動用リンク
◇紙芝居表示となる部分
これら二つの要素を、紙芝居表示ブロック内に記述することになります。
<div id="スライドID">
  <div class="controls">
    <a href="#1枚目ブロックのID">1枚目</a> |
    <a href="#2枚目ブロックのID">2枚目</a> |
    <a href="#3枚目ブロックのID">3枚目</a> |
  </div>  
  <div class="scroller">
    <div class="content">
      <div class="section" id="1枚目ブロックのID">
        <!-- ここにコンテンツを記述 -->
      </div>
      <div class="section" id="2枚目ブロックのID">
        <!-- ここにコンテンツを記述 -->
      </div>
      <div class="section" id="3枚目ブロックのID">
        <!-- ここにコンテンツを記述 -->
      </div>
    </div>
  </div>      
</div>

◇移動用リンク
class名は[controls]となります。

◇紙芝居表示となる部分
紙芝居表示部分(外側)のclass名は[scroller]、
紙芝居表示部分(内側)のclass名は[content]、
セクション(一枚ごとのブロック)class名は[section]となっています。

これらはScript上で使用しているので名前の変更はできません。
(名称変更した場合の設定方法までは現在未解析です。)

これらのclass名でglider.cssにデフォルトスタイルが設定されています。
デフォルトのままのCSSだと、デザイン性は少ないので、
CSSの調整が必要となると思います。
構造は単純なので、割と簡単にスタイル調整を行うことができます。

【Script】
スライドIDを引数とした次のScriptを上記HTMLの定義後に記述します。
<script type="text/javascript" charset="utf-8">
  var my_glider = new Glider('[スライドID]');
</script>

(ヘッダでOnLoad時に宣言してもOKです。)
<script type="text/javascript" charset="utf-8">
   window.onload = function() { var my_glider = new Glider('[スライドID]')};
</script>

◆サンプル
Terakoya Work – Glider
Terakoya Work - Glider

(※キャッシュ再生成中の為、SimpleAPIのサムネイルが表示されないようです。)

このスクリプトはCSSやオプション設定がかなり豊富です。
次回は、まず、自動スライドショー指定方法のオプションから
調べていきたいと思います。

 

[glider.js]
http://www.missingmethod.com/projects/glider.html
紙芝居のようなスライド表示を行うJavaScriptライブラリです。
写真だけでなく、Flashコンテンツなども紙芝居表示することができます。

サンプルを見たところ、かなり使える幅が広そうです。
まずは画像で挑戦したいと思います。

[glider.jsのダウンロード]
glider.jsページのDounLoad[Visit the project page to download or check out the source via SVN.]
をクリックすると、GoogleCodeのダウンロードページへジャンプします。
SVNから取得することもできますが、zip形式で取得できるので、
You can also download a zipped version [here.]
をクリックし、圧縮ファイルをダウンロードします。

サンプルhtml、JavaScriptファイル、CSSファイルが同胞されています。
サンプル以外を適当な場所へ配置し、HTMLで宣言しておきます。
<link rel="stylesheet" href="xxx/stylesheets/glider.css" type="text/css" />
<script src="xxx/javascripts/prototype.js" type="text/javascript"></script>
<script src="xxx/javascripts/effects.js" type="text/javascript"></script>
<script src="xxx/javascripts/glider.js" type="text/javascript"></script>

[javascripts]フォルダ内をみるとわかるのですが、
glider.jsを表示するには、prototype.jsが必要となります。
既に、prototype.jsを取り込んでいる場合は、このファイルは不要となります。
また、scriptaculous.jsの[effects.js]も必要となります。
こちらも、既に取り込んでいる場合は新しく設定する必要はありません。
もとからあるファイルの場所を指定すればOK。

[基本的なスライドの設定]
HTMLにスライド表示用の設定を行い、
Scriptを実行させることになります。

HTMLの設定が少し長くなるので、続きは次回とします。

 

[script.aculo.us Reflector]
http://mir.aculo.us/2006/4/27/like-reflections-try-the-reflector
(サンプル)http://mir.aculo.us/stuff/reflector/reflector.html
prototype.jsとscript.aculo.usのコード(scriptaculous.js)を使用して、
以下のコードにより、画像に鏡面効果を与えるスクリプトです。

今回はオプション引数について解析します。
オプション引数を指定する場合、スクリプト実行時(オブジェクト生成時)
以下のように記述します。
Reflector.reflect('[imgタグに付与したID]',{ amount:[数値], opacity:[数値] });
引数に関してはどちらか片方のみの指定でもOKです。
配列内の順序も問いません。

◆amount
元画面に対し、どのくらいの領域に鏡面効果を表示するか
数値を指定します。
ソースコードを見てわかるように、デフォルトは1/3です。
数値は小数でも分数でもOKです。
1より大きな数値を指定しても、あふれた部分に関しては
鏡面効果とはなりません(当たり前ですが。)
端の画像が引き伸ばされた状態となります。

◆opacity
鏡面画像の透明度を設定します(0~100の間で設定します)。
ソースコードを見てわかるように、デフォルトは1/3です。
数値は小数でも分数でもOKです。

◆簡単なソース解説
本当に簡単ですが。
script.aculo.usライブラリのBuilderオブジェクト
を使用し、amountで指定された割合分
imgの底辺から1pxずつ反転画像をコピー表示しています。(builder.js参照)
そして、Effect.Opacityオブジェクトにopacityの値を設定し
生成した画像部分の透明度を変更しています。(effects.js参照)

【サンプル】
鏡面効果sample

amount:1,opacity:100と設定すると、
また違った画像に見えて、おもしろいですね。

 

[script.aculo.us Reflector]
http://mir.aculo.us/2006/4/27/like-reflections-try-the-reflector
(サンプル)http://mir.aculo.us/stuff/reflector/reflector.html
prototype.jsとscript.aculo.usを使用して、
画像に鏡面効果(鏡に映ったように見せる効果)を与えるスクリプトです。

[必要なJavaScriptソースの取得]
◆scriptaculous.jsの設定
[script.aculo.us]
http://script.aculo.us/
get it already![Downloads page]をクリックし、ダウンロード画面へ。
current vertion[scriptaculous-js-1.7.0.zip]をダウンロードします。
(拡張子、「.tar.gz」「tar.bz2」のファイルもありますので、
環境に合わせてダウンロードします。)
※インストール方法などについては[Getting Started]に記載されています。

ダウンロードすると、サンプルHTMLやJavaScriptのソースが梱包されています。
srcフォルダに、さまざまなエフェクト用のJavaScriptソースファイルが、
libフォルダに、必要となるフレームワークprototype.jsが含まれています。
(今回の鏡面効果で実際に使用されるsrcのソースは
scriptaculous.jsとeffects.js・builder.jsのようです。)

◇prototype.jsを単独でダウンロードする場合
今回は同胞されているので必要ありませんが、
prototype.jsを単独でダウンロードする場合は以下のサイトから行います。

[prototype.js]
http://www.prototypejs.org/
DownLoadページの、[Download the latest stable version―1.5.1.1]をクリックし
prototype.jsをダウンロードします。
(firefoxでは、右クリック「名前をつけてリンク先を保存」でソースを取得します。)

[HTMLソース上の設定]
ヘッダに宣言するJavaScriptファイルは以下の2ファイルになります。
script.aculo.usに含まれているその他のJavaScriptファイルは、
効果に応じてscriptaculous.js内部から使用されます。
<script src="prototype.js" type="text/javascript"></script>
<script src="scriptaculous.js" type="text/javascript"></script>

[鏡面効果JavaScriptコード]
以下のコードを追加するにより、鏡面効果を設定することができます。

このコードの部分を適用したいHTMLに記述しても構いませんし、
外部ファイル化して読み込んでもOKです。
外部ファイル化する場合、
prototype.jsとscriptaculous.jsを先に読み込むようにします。

[HTMLソース上の設定]
鏡面効果を出したい画像のimgタグにIDを付与し、
以下のスクリプトを実行させます。
Reflector.reflect('[imgタグに指定したid]');
スクリプトはwindow.onload時のイベントとして定義するか、
imgタグより後にスクリプトを記述すればOKです。

[サンプル]
今回もZorgより。Lotus Photo by sige
Sampleはこちら。
鏡面効果sample

この効果はかなりカッコイイですね。
次回はソースを解析しつつ、オプション効果について少し調べます。

 

このブログでいくつかのJavaScriptライブラリの
サンプルをご紹介してきているのですが、
紹介するライブラリが増えるたびに、ヘッダで読み込む
jsファイルの量ももちろん増えてくるため、
だんだん読み込みが遅くなってきてしまいました。

そこで、今まで使用していたjsファイルを
JavaScript圧縮(難読化)ツールを使用して
サイズダウンさせたいと思います。
本当ははじめからやるべきことなのですが・・・。

まずは、ためしに現在一番サイズが大きい
slided.js(28246Bytes)
を圧縮してみます。

今回利用してみたツールはこちらです。
[Javascript Compression]
http://www.creativyst.com/Prod/3/
オンライン上でソースコードを直接入力し、圧縮変換してくれるページです。
スペース・タブの除去、改行の除去、コメント除去を行っています。
ページの上段にコードを入力し、「Compress」を押します。
そうするとページ下段に圧縮後のソース&圧縮後サイズが表示されます。
(「Select」を押せばすぐにコピー可能。)

☆実行結果☆
slided.js
28246Bytes→26765Bytes

普段の自分で作成したスクリプトならオンラインはお手軽です。
でもライブラリファイルをいちいち開いて、コピーして、
変換後ソースをコピーして戻して・・・・はけっこう手間です。

他にも圧縮ツールはたくさんあるので、
いくつかためしてみて、一番圧縮率の高い(かつ、動作に問題がない)
ツールをこのブログに採用することにします。

 

[Slided.js]
http://www.netzgesta.de/slided/

画像を映写機のスライドのような枠で装飾するスクリプトです。
今回はオプションクラスのうち、色指定を行えるクラスについて解説します。

今回もこちらの写真を使います。(季節はずれですが。)
slided_sample
<img src=".../images/xxxxx.jpg" alt="sample" class="slided"/>
slided_sample

【ibgcolor】
映写機風スライド部分の色を6桁のカラーコードで指定します。
デフォルトは#FFFFFFです。
(ただし、IEの場合はデフォルト設定のままだと影部分が透過されます。)

[ibgcolorEEFFCC]
<img src=".../images/xxxxx.jpg" alt="sample" class="slided ibgcolorCCFF99"/>
slided_sample

【igradient】
ibgcolorを設定している場合にグラデーションカラーを指定できます。
デフォルトはグラデーションなしです。
[ibgcolorEEFFCC igradientFFDDEE ]
<img src=".../images/xxxxx.jpg" alt="sample" class="slided ibgcolorCCFF99 igradientFFDDEE"/>
slided_sample

【vertical】
通常は左上から右下へグラデーション効果が現れますが、
verticalを指定すると縦方向のグラデーションとなります。
[ibgcolorEEFFCC igradientFFDDEE vertical]
<img src=".../images/xxxxx.jpg" alt="sample" class="slided ibgcolorCCFF99 igradientFFDDEE vertical"/>
slided_sample

【horizontal】
通常は左上から右下へグラデーション効果が現れますが、
horizontalを指定すると横方向のグラデーションとなります。
[ibgcolorEEFFCC igradientFFDDEE horizontal]
<img src=".../images/xxxxx.jpg" alt="sample" class="slided ibgcolorCCFF99 igradientFFDDEE horizontal"/>
slided_sample

色の効果をうまく取り入れると、
うるさくならない程度に画像表示ができそうです。

 

[Slided.js]
http://www.netzgesta.de/slided/

画像を映写機のスライドのような枠で装飾するスクリプトです。
使い方は、Instant.jsFilmed.jsとほぼ同じで、実装もオプションも非常に簡単です。

◆Slided.jsのHTMLへの設定
まずは、必要なファイルをダウンロードし、HTMLに設定します。
http://www.netzgesta.de/slided/のDownloadから
[slided.js 1.0]をダウンロードします。
(ダウンロードファイル名は[slided.zip])
ファイルを展開すると、JavaScriptファイル、サンプルページなどがあります。

映写機風スライドの表示に必要となるのはJavaScriptファイルのみですので
[slided.js]を適当な場所に配置したら、HTMLファイルにJavaScriptの設定を行います。
<script type="text/javascript" src="xxx/slided.js"></script>

これで、準備完了です。
(スクリプトファイルはけっこう重いです・・・。)

◆映写機風の装飾を表示
装飾を行いたいimgタグにclass="slided"と指定すればOKです。

今回はこちらの写真を使います。(季節はずれですが。)
slided_sample
<img src=".../images/xxxxx.jpg" alt="sample" class="slided"/>
slided_sample

◆オプションクラス
slidedと一緒にclassに指定することで、さまざまな効果を得られるクラスが準備されています。

【ishade】
映写機風スライドの周囲のぼかし具合を0~100の数値で指定します。
数値が大きいほどシャープに表示されます。
ただし、0を設定しても適用されません。デフォルトは50です。

[ishade5]
<img src=".../images/xxxxx.jpg" alt="sample" class="slided ishade5"/>
slided_sample

[ishade100]
<img src=".../images/xxxxx.jpg" alt="sample" class="slided ishade100"/>
slided_sample

【ishadow】
影の濃さを0~100の数値で指定します。デフォルトは40です。
数値が大きいほど影が濃くなります。
ただし、0を設定しても適用されません。

[ishadow10]
<img src=".../images/xxxxx.jpg" alt="sample" class="slided ishadow10"/>
slided_sample

[ishadow80]
<img src=".../images/xxxxx.jpg" alt="sample" class="slided ishadow80"/>
slided_sample

注)IEの場合、デフォルトフレーム色のままだと、影の効果がフレームに透過しています。
(デフォルトの表示のときに、IE以外の場合はフレームが白ですが、
IEの場合、影が透過してグレーに表示されます。)
ishadow100をフレーム色の指定無しで設定してしまうと、
IEで真っ黒のフレームが表示されてしまいますので、ご注意ください。

【noshadow】
影の効果を無しにします。
<img src=".../images/xxxxx.jpg" alt="sample" class="slided noshadow"/>
slided_sample

【nocircles】
四隅についている丸い飾りをなくします。
<img src=".../images/xxxxx.jpg" alt="sample" class="slided nocircles"/>
slided_sample
非常にシンプルな感じになりますね。

次回、色関連のオプションクラスを紹介します。

© 2012 寺子屋未満 Suffusion theme by Sayontan Sinha