1. spider.js¶
spider.jsは、JavaScriptライブラリであり、以下のような機能を持っています。
Ajaxによる非同期通信
XSLTを使ったXMLデータのインポート
JavaScriptによる半透明処理
回転・拡大・縮小処理
メソッドチェーンでJavaScriptメソッドを続けて実行可能
JavaScriptによるオブジェクトの移動
MP4動画やMP3・OGGなどの音声ファイルの再生
予め用意しているCanvasを使ったアニメーション
クリックやマウスオーバー、マウスアウトやマウスを動かす、マウスボタンが上がっている、マウスボタンを押しているなどを行った時のイベントメソッドの実装
キーボードのキーを押した時のイベント処理
Cookieの生成や取得や削除に関する処理の実施
外部のWebページを表示
CSSのコントロール
スライドショー機能
セレクトボックスの項目の選択で画像を表示させる機能
文字の縦書き表示
パラパラ漫画のようなアニメーションの実現
Webページが崩落する処理
文字列を近未来的な表現で表示
時刻、ブラウザの表示、スクリーンの表示を行う機能
Webページのタイトルに応じた外部スクリプトの呼び出し
画像の先読み
電子看板のような文字列の表示
背景色の一定時間毎の変化処理
ストップウォッチ機能
ブラウザの履歴処理を使ったページ処理
ページ上のリンクを配列として取得する処理
特定の時間毎にリロード
CSS Spritesを使った処理
1.1. spider.jsを使う¶
1.1.1. spider.jsの呼び出し方¶
HTMLのソースコードに<script type="text/javascript" src = "Spider/spider.js"></script>を記述して呼び出す。
1.1.2. load関数¶
ページを読み込んでから、処理を行います。spider.jsを使う場合には、必須の関数となっています。load関数の中に処理したい内容を関数として設定しておきます。:
load(() => {処理});
ライブラリを呼び出したら、HTMLソースコード内にscript要素を設定し、以下のように記述します。
load関数の中に処理を書いていくスタイルとなります。:
<script type="text/javascript">
load(() => {
処理
});
</script>
外部スクリプトファイルを作成して、load関数で処理を書いていっても構いません。 xxx.js:
load(() => {
処理
});
1.1.3. JavaScriptの関数・メソッド・プロパティのショートカット¶
JavaScript標準の関数、メソッド、プロパティ名は長いのでショートカットを定義しています。:
let ver = "20160202",
$w = window,
$d = $w.document,
$na = navigator,
$nan = $na.appName,
$nav = $na.appVersion,
$np = $na.platform,
$ua = $na.userAgent,
$ualc = $na.toLowerCase,
$npl = $na.plugins,
$nmt = $na.mimeTypes,
$sn = screen,
$int = parseInt,
$si = setInterval,
$ci = clearInterval,
$sti = setTimeout,
$cti = clearTimeout,
$host,$dbname,$user,$password,$table,
$db = "&host=" + $host + "&dbname=" + $dbname + "&user=" + $user + "&password=" + $password + "&table=" + $table;
let $stfl = ($ua.indexOf("firefox") || $ua.indexOf("opera") || $ua.indexOf("webkit")) ? "cssFloat" : "styleFloat";
let $lp = ("https:" == $d.location.protocol) ? "https://ssl" : "http://www";
1.1.4. Spiderクラス¶
Spiderクラスを生成することで、様々な機能をWebページにつけることが出来ます。:
let s = new spider("");
let s = spider(""); どちらを使っても構いません。
1.1.5. チェーンメソッド¶
spider.jsは、ほとんどのメソッドでチェーンメソッドに対応しています。 <例>:
spider("display").font("10pt","#ffffff").date().infoB().infoS().matrixEffect();
以下のように書くことも出来ます。:
spider("display")
.font("10pt","#ffffff")
.date()
.infoB()
.infoS()
.matrixEffect();
2. メソッド¶
2.1. require¶
requireメソッドは、JavaScript、CSS、PHP、CGIの外部ファイルを読み込みます。単独で呼び出したい時に使う事が多いです。:
spider("").require(JavaScript・CGI・PHP・CSSの外部ファイル名);
2.2. addElement¶
特定の要素に新しい要素を追加する:
spider("").addElement("div",document.body);
2.3. addListener¶
イベントハンドラを追加する:
spider("id").addListener("click",func,false);
2.4. removeListener¶
イベントハンドラを削除する:
spider("id").removeListener("click",func,false);
2.5. click¶
マウスでクリックしたり、スタイラスペンでタップすると処理を行うことが出来ます。:
spider(id名).click(function(){処理});
id名に「div0」なととした場合は「divエレメント」の1番目の物を指します。:
2.6. mouseover¶
- マウスオーバーすると処理を実行出来ます。::
spider(id名).mouseover(function(){処理}); id名に「div0」などとした場合は「divエレメント」の1番目を指します。
2.7. mouseout¶
マウスアウトすると処理を実行する。:
spider(id名).mouseout(function(){処理});
id名に「div0」などとした場合は「divエレメント」の1番目を指します。
2.8. mousemove¶
マウスが動いているときに処理を実行します。:
spider(id名).mousemove(function(){処理});
id名に「div0」などとした場合は「divエレメント」の1番目を指します。
2.9. mouseup¶
マウスボタンが上がっているときに処理を行います。:
spider(id名).mouseup(id名,function(){処理});
id名に「div0」などとした場合は「divエレメント」の1番目を指します。
2.10. mousedown¶
マウスボタンを押したときに処理を行います。:
spider(id名).mousedown(function(){処理});
id名に「div0」などとした場合は「divエレメント」の1番目を指します。
2.11. keydown¶
キーボードのキーを押すと処理を行います。:
spider(id名).keydown(function(){処理});
id名に「div0」などとした場合は「divエレメント」の1番目を指します。
2.12. scroll¶
スクロールをした時の処理を実行させる事が出来ます。:
spider("window").scroll(function(){処理});
2.13. scrollanim¶
一定の場所までスクロールした時にフワッとコンテンツを表示させる事が可能です。:
spider(id名).scrollanim();
2.14. scrollto¶
idを指定した要素に移動します。:
spider("").scrollto(id名);
2.15. html¶
HTML・文字列を挿入したり、外部のWebサイトを表示したり、Ajaxでテキストデータを取得して表示することが出来ます。
赤いレイヤーには、「テスト」文字列が挿入されており、緑のレイヤーには外部ページが挿入されています。
これを実現するには、以下のようなスクリプトを書きます。:
load(() => {
//spiderクラスの呼び出し
let s= spider("");
//赤いレイヤーの呼び出しと処理
s.createLayer("av1",{width:640,height:480});
spider("av1")
.css("background",{color:"#ff0000"})
.css("position",{x:150,y:100})
.css("opacity",{opacity:70})
.html("add",{string:"テスト"});
//緑のレイヤの呼び出しと処理
s.createLayer("av2",{width:300,height:200});
spider("av2")
.css("background",{color:"#00ff00"})
.css("position",{position:"absolute",x:200,y:300})
.css("zindex",{z:10})
.html("import",{cid:"xzq",data:"http://spider.osdn.jp/html/spiderjs/spiderjs001.html"});
});
1.外部HTMLを挿入する場合:
spider("xxx").html("import",{cid:"ID設定",width:幅(px),height:高さ(px),data:"外部HTMLのURL"});
2.Ajaxを使ってHTMLを挿入する場合:
spider("xxx").html("ajax",{url:"読み込むHTMLファイルのURL"});
3.HTMLを挿入する場合:
spider("xxx").html("add",{string:"文字列"});
4.空のオブジェクトにHTMLを挿入する場合:
spider("xxx").html("inner",{string:"文字列"});
5.Pjaxを使う場合 Ajaxを使いますと、URLはそのままで外部ページなどを非同期で読み込むことが出来ますが、ページの閲覧履歴には残りません。このメソッドを使うことでAjaxを行いながら、URLの変更が出来るようになります。:
spider("xxx").html("pjax","yyy.html");
6.iframeで表示するWebページを変更:
spider("xxx").html("iframe",{src:"http://zzz.com"});
7.CSSではみ出た部分をスクロールするように表示させる:
spider("xxx").html("overflow");
2.16. tool¶
様々な要素を追加する事が出来ます。
1.HTMLのリストの項目を増やすこと出来る:
spider("ami").tool("appendMenuItem",{url:"ddd.com",menuitem:"ccc"});
2.クッキーに関する処理を行う
◇クッキーの生成:
spider("").tool("createCookie",{name:"website", value:"Welcome", epires:new Date(new Date().getTime() + 10000)});
◇クッキーの取得:
spider("xxx").tool("getCookie",{name:"website"});
◇クッキーの削除:
spider("xxx").tool("deleteCookie",{name:"website"});
3.リンク先のURLを変更することが出来ます。:
spider("").tool("href",{url:"ddd.com"});
4.JavaScriptのバージョンを指定する:
spider("").tool("scriptVersion",{version:"1.5"});
5.Webページのタイトルに合わせて実行したい外部スクリプトを呼び出します。:
spider("").tool("title",{string:"xxx",src:"vvv.js"});
6.画像は先読みします。:
spider("").tool("imgload",{array:["a","b","c"]});
7.横向きの電光掲示板のように文字列を表示します。
延々とメッセージを流し続ける「scroll」とタイピングをするように文字列を表示する「typing」があります。:
spider(id名).tool("scrollMessage",{string:"文字列"});
spider(id名).tool("typing",{string:"文字列"});
8.背景の色が時間毎に変化します。:
spider("body").css("colorchange",{array:["#ffffff","#eeeeee","#adbcff","#333555"]});
9.ストップウォッチを表示します。:
spider(id名).tool("stopwatch");
10.Xpathを使用することが出来ます。:
spider("").tool("xpath",{xmlDoc:xmldoc});
11.ブラウザの履歴機能を利用してページに進んだり、戻ったりする事が出来る。:
spider("").tool("historyback");
spider("").tool("historygo");
spider("").tool("historylength");
spider("").tool("referrer");
12.ページ上のリンクを配列として取得します。:
spider("").tool("linkarray");
13.特定の時間にリロードします。:
spideer("").tool("reload",{time:"1000"});
14.Iframeを非表示にします。:
spider("").tool("hiddenIframeconst");
spider("").tool("hiddenIframerandom");
spider("").tool("hiddenIframeremove");
15.配列やCSS Spritesを使ってパラパラ動画を実現します。:
spider("xxx").tool("imageanimation",{imgsrc:"a.jpg",speed:1,width:100,height:200,xx:2);
spider("").tool("csssprites",{id:"xxx",width:300,height:200,imgsrc:"xxx.jpg"});
16.ブラウザのロケーション部分でアニメーションさせる:
spider("").tool("location",{["a","b"]});
17.CSS Spritesを使って画像を表示します。:
spider(id).tool("csssprites",{imgsrc:"xxx.jpg",width:"100px",height:"100px"});
18.使用しているFlash Playerのバージョンを調べたり、ExternalInterfaceを使用したSWFにアクセス出来ます。:
spider("").tool("getFlash",{id:"sssw"}); //SWFにアクセス出来ます。
19.アコーディオン形式でコンテンツを表示します。
HTML部分
- <section class="ac-container">
- <div>
<input id="ac-1" name="accordion-1" type="radio" checked> <label for="ac-1">A</label> <article>
<p>A-contents</p>
</article>
</div> <div>
<input id="ac-2" name="accordion-1" type="radio"> <label for="ac-2">B</label> <article>
<p>B contents </p>
</article>
</div> <div>
<input id="ac-3" name="accordion-1" type="radio"> <label for="ac-3">C</label> <article>
<p>C contents</p>
</article>
</div>
</section>
spider("").tool("accordion");
20.ボタンにアニメーション機能を搭載します。:
<div class="circlePositioner">
<div class="mainCircle">
<div class="spinningContainer">
<div class="leftContainer"></div>
<div class="rightContainer"></div>
</div>
<div class="overlay">
<p>Button</p>
</div>
</div>
</div>
spider("").tool("animationbutton");
2.17. createLayer¶
レイヤーを生成します。:
new spider("").createLayer(id,{width:幅,height:高さ,x:X座標,y:Y座標,z:Z座標,bgC:背景色,fontC:文字色,html:HTML});
spider("").createLayer(id,{width:幅,height:高さ,x:X座標,y:Y座標,z:Z座標,bgC:背景色,fontC:文字色,html:HTML});
2.18. XMLObject¶
XMLHttpObjectのクロスブラウザメソッドです。:
var xmlobj = spider("").XMLObject();
2.19. httpRequset¶
クロスブラウザ版XMLHttpRequestです。非同期でXMLなどの文書フォーマットをサーバから取得することが出来ます。:
spider("").httpRequest(url,method,func,query);
2.20. loadXML¶
サーバー上のXMLを取得します。:
new spider("").loadXML(サーバー上のXML名);
spider("").loadXML(サーバー上のXML名);
2.21. xmlTransform¶
XMLにXSLTを適用します。:
new spider(id).xmlTransform(XMLソース,XSLT); spider(id).xmlTransform(XMLソース,XSLT);
2.22. css¶
CSSを使った変更が出来るメソッドです。
1.CSSのクラスを追加:
spider("").css("addClass",{css_class:"任意のクラス名"});
2.CSSのクラスを削除:
spider("").css("removeClass",{css_class:"削除したいクラス名"});
3.CSSを設定:
spider("xxx").css("setCSS",{css:"CSSコード"});
4.a要素にターゲットブランクを追加:
spider("").css("targetBlank");
5.ポジションを設定:
spider("xxx").css("position",{position:"absolute or relative",x:X方向への移動,y:Y方向への移動});
6.オブジェクトの大きさを変更する:
spider("xxx").css("size",{width:幅,height:高さ});
7.Z-indexの設定:
spider("xxx").css("float",{type:"left or right"});
8.マージンの設定:
spider("xxx").css("margin",{value:"マージンの値"});
9.パディングの設定:
spider("xxx").css("padding",{value:"パディングの値"});
10.背景画の設定:
spider("xxx").css("background",{src:"画像のソース",repeat:"repeat-x or repeat-y",color:"背景のカラー",position:"背景の位置"});
11.フォントの設定:
spider("xxx").css("font",{size:フォントの大きさ,fontcolor:"フォントの色",fontfamily:"フォントファミリー",decoration:"フォントの装飾"});
12.クリッピング設定:
spider("xxx").css("clip",{up:上,down:下,left:左,right:右,lx:X方向限界値,ly:Y方向限界値});
13.表示する:
spider("xxx").css("visible");
14.非表示にする:
spider("xxx").css("hidden");
15.CSSでiframeのような表現をする:
spider("xxx").css("cssiframe");
16.透明度の設定:
spider("xxx").css("opacity",{opacity:透明度});
17.ブラウザの幅取得:
spider("").css("innerwidth");
18.ブラウザの高さ取得:
spider("").css("innerheight");
19.CSS3の機能を使ってX方向に変形:
spider("").css("skewx",{deg:角度});
20.CSS3の機能を使ってY方向に変形:
spider("").css("skewy",{deg:角度});
21.CSS3の機能を使って移動:
spider("").css("translate",{x:X方向の移動,y:Y方向の移動});
22.CSS3の機能を使って拡大・縮小:
spider("").css("scale",{scale:倍率});
23.要素に影をつけます。:
spider("xxx").css("boxShadow");
24.CSSの機能を使って角度をつけながら、移動:
spider("xxx").css("transform",{x:100,y:30,deg:60});
25.CSSの機能を使って、要素にグラデーションを加える:
spider("xxx").css("gradient");
26.ブラインドの開け閉めのようなアニメーションを行う(X方向拡大):
spider("xxx").css("spreadx",{speed:1,end:300});
27.ブラインドの開け閉めのようなアニメーションを行う(Y方向拡大:
spider("xxx").css("spready",{speed:1,end:300});
28.ブラインドの開け閉めのようなアニメーションを行う(XY方向拡大):
spider("xxx").css("spreadxy",{speed:1,end:300});
29.ブラインドの開け閉めのようなアニメーションを行う(X方向縮小):
spider("xxx").css("shrinkx",{speed:1,end:0});
30.ブラインドの開け閉めのようなアニメーションを行う(Y方向縮小):
spider("xxx").css("shrinky",{speed:1,end:0});
31.ブラインドの開け閉めのようなアニメーションを行う(XY方向縮小):
spider("xxx").css("shrinkxy",{speed:1,end:0});
32.オブジェクトを拡大するアニメーションを実行する:
spider("xxx").css("scaleeffect",{scale:2});
33.オブジェクトを回転するアニメーションを実施する:
spider("xxx").css("rotateeffect",{deg:60});
34.x方向へ移動する:
spider("xxx").css("movex"{speed:1,end:500});
35.x方向へ移動する:
spider("xxx").css("movey"{speed:1,end:500});
36.x方向へ移動する:
spider("xxx").css("movexy"{speed:1,end:500});
2.23. info¶
現在の時刻を表示:
spider(id).info("date");
ブラウザの情報を表示:
spider(id).info("browser");
スクリーンの情報を表示:
spider(id).info("screen");
spider("").info("flashVersion"); //modeがversionの場合、Flash Playerのバージョンを調べることが出来ます。
2.24. slideShow¶
コンテンツをキーボードのカーソルキーで操作して切り替えることが出来ます。:
new spider("").slideShow(コンテンツのid名の配列);
spider("").slideShow(コンテンツのid名の配列);
2.25. imgChange¶
カーソルキーで画像を切り替えることが出来ます。:
spider(id).imgChange({width:640,height:480,dir:"dir",array:"array"});
2.26. moviePlayer¶
MPEG4、Ogg Vorbis、Web M形式の動画を再生:
spider("zzz").moviePlayer(["x.mp4","y.ogg","z.webm"],{width:"640",height:"480"});
2.27. audioPlayer¶
MP3、Ogg Vorbis形式の音楽を再生する:
spider("zzz").audioPlayer(["x.mp3","y.ogg"]);
2.28. seekingMedia¶
シーク時間を設定:
spider("zzz").seekingMedia(10);
2.29. parseXML¶
XMLを解析します。:
spider(id).parseXML(url,method);
2.30. selectImage¶
クリックすると画像が表示されるセレクタを生成します。:
spider(id).selectImage(dir,ar,titleA);
2.31. meltdown¶
Webページが崩落します。:
new spider("").meltdown();
spider("").meltdown();
2.32. matrixEffect¶
映画「マトリックス」のようなエフェクトを実現することが出来ます。:
spider("").matrixEffect(id名);
new spider("").matrixEffect(id名);
2.33. particle¶
Canvasでパーティクル表現を実現します。:
new spider("").particle(id名,R,G,B);
spider("").particle(id名,R,G,B);
2.34. command¶
キーボードのショートカットでページ内の特定の場所にWebページを呼び出すように設定出来ます。:
spider("xxx").command("↑ ↑ ↓ ↓ ← → ← → b a","http://www.google.co.jp");