• 検索結果がありません。

本 プレゼンの 資 料 は 以 下 のURLから 参 照 できます

N/A
N/A
Protected

Academic year: 2021

シェア "本 プレゼンの 資 料 は 以 下 のURLから 参 照 できます"

Copied!
57
0
0

読み込み中.... (全文を見る)

全文

(1)

jsライブラリで実装する

効率的なWeb制作 

(2)

本プレゼンの資料は

以下のURLから参照できます 

(3)

プロフィール 

•  西畑 一馬 (Nishihata Kazuma) 

•  大阪生まれ。大阪在住。 

•  株式会社ネットテン プログラマー

(4)

プロフィール(2) 

•  大阪市デジタル産業支援事業 imedio 

http://www.imedio.or.jp/ 

•  CSSとMovableTypeの

ハンズオントレーニングを行ってます。 

•  興味があるかたはぜひ

(5)

プロフィール(3) 

to‑RというBlogを書いてます。 

(6)
(7)
(8)
(9)
(10)

Web制作2.0を

体験してください

(11)

アジェンダ 

•  jsライブラリとは? 

•  ライセンス 

•  jsライブラリを使ってみる 

•  jsライブラリの作り方

(12)
(13)

jsライブラリとは? 

•  JavaScriptで作成されたフレームワーク。 

•  JavaScriptの汎用的な機能をまとめたもの。 

•  つまり、複雑なJavaScriptを簡単に扱う為の 

(14)

多機能なjsライブラリ 

•  prototype.js 

http://www.prototypejs.org 

•  jQuery 

http://jquery.com/ 

•  Yahoo! UI Library 

http://developer.yahoo.com/yui/ 

•  Spry framework 

http://labs.adobe.com/technologies/spry/

      

etc

(15)

単機能だけのjsライブラリ 

•  Lightbox 

http://www.huddletogether.com/projects/lightbox2/ 

•  curvyCorners 

http://www.curvycorners.net/downloads.php 

•  Image Rollover Code 

http://www.dnolan.com/code/js/rollover/ 

•  alphafilter.js 

http://blog.webcreativepark.net/2007/02/01­233315.html

      

etc

(16)
(17)

ライセンスとは? 

•  免許・認可など一定の権利の使用や制限

の解除を特定の者に認容するもの。 

•  一定の条件下で著作権にとらわれず、使

用もしくは改変などを行うことが可能になり

ます。

(18)

主なライセンス 

•  MIT license 

•  BSD license 

•  GPL 

(19)

MIT license 

1.  自由に使用・複製・改造ができる。 

2.  著作権表示および 本許諾表示をすべて

の複製、または、重要な部分に記載 。 

3.  著作権者は、ソフトウェアに関してなんら

責任を負わない。

(20)

BSD license 

1.  自由に使用・複製・改造ができる。 

2.  「無保証」であることを明記する 。 

(21)

GPL 

1.  自由に使用・複製・改造ができる。 

2.  複製・改造した物の、ソースコードへのア

クセス が可能でなくてはいけない。 

3.  改造・複製した物のライセンスもGPLでな

ければいけない。

(22)

CC license 

•  Attribution­表示

作品を創作した人(著作者)の氏名、作品のタイトルなど、作品に

関する情報を表示する。 

•  Non­commercial­非営利

作品を営利目的で利用してはならない。 

•  No Derivative Works­改変禁止

作品を改変してはならない。 

•  Share Alike­継承

改変することで新たに生み出された作品は、当初の作品のライセ

ンス条件を継承し、同一の組み合わせでライセンスされなければ

ならない。

(23)

•  ライセンスが明記されているものはルール

を守って使用する。 

•  ライセンスがわからない場合は、製作者に

問い合わせる。

(24)
(25)

Lightbox 

(26)
(27)

Lightboxの使用方法

<script type="text/javascript" src="js/prototype.js"></script>

<script type="text/javascript" src="js/scriptaculous.js?load=effects"></script> <script type="text/javascript" src="js/lightbox.js"></script> 

head要素

<link rel="stylesheet" href="css/lightbox.css" type="text/css" media="screen" />

<a href="images/image-1.jpg" rel="lightbox" title="my caption"><img></a> 

(28)

Lightboxの使用方法(2)

<script type="text/javascript" src="js/prototype.js"></script>

<script type="text/javascript" src="js/scriptaculous.js?load=effects"></script> <script type="text/javascript" src="js/lightbox.js"></script> 

head要素

<link rel="stylesheet" href="css/lightbox.css" type="text/css" media="screen" />

<a href="images/image-1.jpg" rel="lightbox[roadtrip]" title="my caption"><img></a> <a href="images/image-1.jpg" rel="lightbox[roadtrip]" title="my caption"><img></a> <a href="images/image-1.jpg" rel="lightbox[roadtrip]" title="my caption"><img></a> 

(29)

curvyCorners 

(30)

curvyCornersの使用方法

<script type="text/javascript" src="js/rounded_corners_lite.inc.js"></script> 

head要素

<script type="text/javascript" > window.onload = function(){ settings = { tl: { radius: 20 }, tr: { radius: 20 }, bl: { radius: 20 }, br: { radius: 20 }, antiAlias: true, autoPad: true, validTags: ["p"] }

var myBoxObject = new curvyCorners(settings, "myBox"); myBoxObject.applyCornersToAll(); } </script> <script type="text/javascript" > window.onload = function(){ settings = { tl: { radius: 20 }, tr: { radius: 20 }, bl: { radius: 20 }, br: { radius: 20 }, antiAlias: true, autoPad: true, validTags: ["p"] }

var myBoxObject = new curvyCorners(settings, "myBox"); myBoxObject.applyCornersToAll(); }

(31)

Image Rollover Code 

(32)

Image Rollover Code

の使用方法

<script src="js/rollover.js" type="text/javascript"></script> 

head要素

<img src="sample.jpg" alt="Some Image" class="imgover" /> 

img要素

sample_o.jpgで用意

(33)

alphafilter.js 

(34)

alphafilter.jsの使用方法

<script src="js/alphafilter.js " type="text/javascript"></script> 

head要素

<img src="sample.jpg" alt="Some Image" class="alphafilter " /> 

img要素

<p class="alphafilter">内容</p>

(35)
(36)
(37)

ライブラリ依存型ライブラリ 

•  Lightboxのようにprototype.jsがないと動か

ないライブラリ。 

•  ThickBoxのようにjQueryがないと動かない

ライブラリ。

(38)

ライブラリ依存型ライブラリ 

• 

この2つのライブラリは同時に動きません。 

• 

jQueryとprototype.jsは同時に使うことができ

ません。 

(39)
(40)

onload記法 

•  curvyCorners

 や 

Image Rollover Codeは 

onloadイベントを使用している。

window.onload = initRollovers;

<body onload="MM_preloadImages('画像ファイル')"> 

•  DreamweaverのMM_preloadImages関数もonload 

イベントを使用している。

(41)

Onloadイベントは

最後に宣言されたものしか

実行されない

(42)

onload記法

window.onload=

initRollovers

;

try{

window.addEventListener('load',

initRollovers

,false);

}catch(e){

window.attachEvent('onload',

initRollovers

);

(43)

イベントハンドラ関数(1)

function addListener(element, eve, func, cap){

try{

element.addEventListener(eve, func, cap);

}catch(e){

element.attachEvent('on' + eve, func);

}

•  関数化してしまえば 

(44)

イベントハンドラ関数(2)

addListener(window, 'load',

function(){MM_preloadImages('画

像ファイル')}

, false);

addListener(window, 'load',

initRollovers

, false); 

•  Image Rollover Codeの場合 

(45)

イベントハンドラ関数(3) 

•  curvyCornersの場合

addListener(window, 'load',

function(){

settings = {

tl: { radius: 20 },

tr: { radius: 20 },

bl: { radius: 20 },

br: { radius: 20 },

antiAlias: true,

autoPad: true,

validTags: ["p"]

}

var myBoxObject = new curvyCorners(settings, "myBox");

myBoxObject.applyCornersToAll();

(46)
(47)

jsライブラリを作る準備 

•  機能を考える 

•  使用する対象を考える 

•  実装方法を考える      

•       →発展させる 

•        →限定する 

•        → シンプルに

      

面倒くさい作業はjsライブラリで

JavaScriptがわからない人でも使用できるライブラリを

よりシンプルな形で実装する。

(48)

DOMで

(49)
(50)
(51)

getElementsByClassName()

document.getElementsByClassName = function (className) {

var i, j, eltClass;

var objAll = document.getElementsByTagName ?

document.getElementsByTagName("*") : document.all; var objCN = new Array();

for (i = 0; i < objAll.length; i++) {

eltClass = objAll[i].className.split(/¥s+/); for (j = 0; j < eltClass.length; j++) { if (eltClass[j] == className) { objCN.push(objAll[i]); break; } } } return objCN; }

(52)
(53)

オブジェクトの汚染 

• 

他のライブラリと共存できてこそのライブラ

リ。 

• 

オブジェクト(変数や関数)を作成するとグロ

ーバルなオブジェクトに汚染が発生します。 

• 

他のライブラリとの不具合が生じることも

(54)

無名関数

(function () {

処理

})();

new function () {

処理

• 

無名関数でJavaScriptを包むことにより

グローバルなオブジェクトを汚さずに

JavaScriptを記述することができます。

(55)

無名関数

var a=0;

var a = 10;

alert(a)

var a=0;

(function() {

var a = 10;

})();

alert(a)

→10 

→0

(56)

jsライブラリで効率的な

Web制作を行ってください

(57)

参照

関連したドキュメント

脅威検出 悪意のある操作や不正な動作を継続的にモニタリングす る脅威検出サービスを導入しています。アカウント侵害の

(a) ケースは、特定の物品を収納するために特に製作しも

モノづくり,特に機械を設計して製作するためには時

本資料は、宮城県に所在する税関官署で輸出又は輸入された貨物を、品目別・地域(国)別に、数量・金額等を集計して作成したものです。従っ

本資料は、宮城県に所在する税関官署で輸出又は輸入された貨物を、品目別・地域(国)別に、数量・金額等を集計して作成したものです。従っ

にちなんでいる。夢の中で考えたことが続いていて、眠気がいつまでも続く。早朝に出かけ

本資料は、宮城県に所在する税関官署で輸出又は輸入された貨物を、品目別・地域(国)別に、数量・金額等を集計して作成したものです。従っ

本資料は、宮城県に所在する税関官署で輸出又は輸入された貨物を、品目別・地域(国)別に、数量・金額等を集計して作成したものです。従っ