SlideShare ist ein Scribd-Unternehmen logo
1 von 28
Downloaden Sie, um offline zu lesen
第十二回ネットワーク
チーム講座資料
Canvasによる図形描画とpng保存
目次
• DOMツリー
• Canvasによる図形描画とpng保存
• 基本的なjQueryメソッド
グローバル変数の宣言
「var」をつけずに変数を宣言・初期化すると、その変数はグローバ
ル変数として定義される。
階層構造
(第五回の復習)
ツリー構造ともいう。
以前紹介した通り、HTML文書は以下のような構造をとっている。
table
tr
thead tbody
tr
th thth td tdtd
tr
td tdtd
DOM
(Document Object Model)
プログラムにおいてHTMLを扱うためのインタフェース。
読み込んだHTML文書をDOMツリーと呼ばれる階層構造を持つデー
タに変換して取得・編集を行っており、DOMツリーを構成する要素
をDOMノードと呼ぶ。
(getElementsBy-メソッドで取得できるのはこのDOMノードの一種
であるHTMLElementである)
jQueryオブジェクト
jQueryで使えるメソッド・プロパティを持ったオブジェクトのこと。
内部にはDOMノードが格納されている。
以下のように呼び出すと、jQueryオブジェクトとして返る。
※jQueryオブジェクトからDOMノードを取り出す際にはgetメソッドを使う
$(“セレクタ”)
$(DOMノード)
プロパティ
オブジェクトが持つ、一組のキーと値からなる要素のこと。
メソッドと違いオブジェクトに対して何らかの処理を行うわけでは
ないが、オブジェクトによっては文字列・配列の長さやマウスポイ
ンタの現在位置などの情報を持つプロパティもある。
オブジェクト.プロパティ名
書いてみよう
1. 「drawCanvas.html」を作成し、以下のように記述
書いてみよう
2. jsフォルダ内に「drawCanvas.js」を作成し以下のように記述する。
(二つ先のスライドまでで一個のjsファイル)
書いてみよう
書いてみよう
結果
Canvasで描画した画像の保存
Canvasで描画した画像は、Webページ上で生成されたものであるた
め、ブラウザによっては直接保存することが出来ない。
そのため、toDataURLメソッドを使用して通常のpng画像として変換
し、imgタグを使用して表示しなおすことで、使用ブラウザに関わら
ず保存できるようにする必要がある。
解説
drawCanvas.jsは3つの関数で構成されている
readyイベント
DOM要素全てが読み込まれたとき実行されるjQueryイベント。
以下のように記述して使用する。
「処理」には殆どの場合、無名関数「function () { }」を指定する。
$( 処理 );
jQuery(document).ready( 処理 );
thisオブジェクト
呼び出し元のオブジェクトのことを指す。
この場合、「$(“#file”)」の部分が呼び出し元となるのだが、thisオブ
ジェクトはJavaScriptで定義されている仕組みなので、jQueryオブ
ジェクトではなくDOMノードが入っている。
File API
JavaScriptからローカルのファイルを扱うためのインタフェース。
属性に「type=“file”」を指定したInput要素からファイルを選択する
ことで、プログラム内でローカルのファイルを扱うことが出来る。
Input要素のDOMノードが持つfilesプロパティからfileListオブジェク
トを取得でき、その中に選択したファイルが格納されている。
FileList
Readyイベント内に以下のように「console.log(this.files)」を追加
FileList
コンストラクタ
オブジェクトを作成する際に呼び出され、初期化などを行う関数。
同じ構造のオブジェクトを複数生成する時や、特定の用途に使用す
るオブジェクトをデフォルトのコントラクタで生成する時に使用す
る。
また、コンストラクタによって作成されたオブジェクトを
「インスタンス」と呼ぶ。
コンストラクタ
• コンストラクタの呼び出し
(インスタンスの生成)
function 名前(引数){
this.キー = 初期値;
}
名前.prototype.メソッド = function() {
処理
};
• コンストラクタの宣言
var inst = new 名前();
イベントオブジェクト
イベントに関する情報が格納されたオブジェクト
addEventListenerメソッドやonメソッドで作製したイベントリスナー
で指定した関数の第一引数に自動的に渡される。
onメソッド
対象としたjQueryオブジェクトに対して指定したイベントが起こった時、
特定の処理を実行するメソッド。イベントは複数指定することが出来る
他、セレクタとデータは省略できる。
• セレクタ…処理を行う要素を指定(省略の場合、対象に処理を行う)
• データ…イベントオブジェクトの要素として渡される
$(対象).on(“イベント名”, “セレクタ”, データ,処理);
.attrメソッド
jQueryのメソッドの一つ。指定した要素の属性とその値を取得・設
定することが出来る。
1. セレクタで指定した要素の属性値を取得
2. セレクタで指定した要素の属性値を設定
$(“セレクタ”).attr(“属性名”, “属性値”);
$(“セレクタ”).attr(“属性名”);
.cssメソッド
jQueryのメソッドの一つ。CSSプロパティの値を取得・設定すること
が出来る。
1. セレクタで指定した要素のプロパティの値を取得
2. セレクタで指定した要素のプロパティの値を設定
$(“セレクタ”).css(“プロパティ名”, “プロパティ値”);
$(“セレクタ”).css(“プロパティ名”);
.htmlメソッドと.textメソッド
jQueryのメソッドで、HTMLとテキストをそれぞれ取得・編集できる。
1. セレクタで指定した要素の値を取得
2. セレクタで指定した要素の値を設定
$(“セレクタ”).html(“HTML文”);
$(“セレクタ”).html(); $(“セレクタ”).text();
$(“セレクタ”).text(“テキスト”);
.prependメソッドと.appendメソッド
jQueryメソッド。指定した要素の子要素の最初(最後)にそれぞれ
引数で指定したコンテンツを追加する。
1. セレクタで指定した要素の一番最初にコンテンツを追加
2. セレクタで指定した要素の一番最後にコンテンツを追加
$(“セレクタ”).prepend(“コンテンツ”);
$(“セレクタ”).append(“コンテンツ”);
おしまい
次回は今までの復習です

Weitere ähnliche Inhalte

Mehr von densan_teacher

後期第六回ネットワークチーム講座資料2016
後期第六回ネットワークチーム講座資料2016後期第六回ネットワークチーム講座資料2016
後期第六回ネットワークチーム講座資料2016densan_teacher
 
後期第八回ネットワークチーム講座資料
後期第八回ネットワークチーム講座資料後期第八回ネットワークチーム講座資料
後期第八回ネットワークチーム講座資料densan_teacher
 
後期第七回ネットワークチーム講座資料
後期第七回ネットワークチーム講座資料後期第七回ネットワークチーム講座資料
後期第七回ネットワークチーム講座資料densan_teacher
 
後期第五回ネットワークチーム講座資料
後期第五回ネットワークチーム講座資料後期第五回ネットワークチーム講座資料
後期第五回ネットワークチーム講座資料densan_teacher
 
後期第四回ネットワークチーム講座資料
後期第四回ネットワークチーム講座資料後期第四回ネットワークチーム講座資料
後期第四回ネットワークチーム講座資料densan_teacher
 
後期第三回ネットワークチーム講座資料
後期第三回ネットワークチーム講座資料後期第三回ネットワークチーム講座資料
後期第三回ネットワークチーム講座資料densan_teacher
 
後期第二回ネットワークチーム講座資料
後期第二回ネットワークチーム講座資料後期第二回ネットワークチーム講座資料
後期第二回ネットワークチーム講座資料densan_teacher
 
後期第一回ネットワークチーム講座資料
後期第一回ネットワークチーム講座資料後期第一回ネットワークチーム講座資料
後期第一回ネットワークチーム講座資料densan_teacher
 
第十三回ネットワークチーム講座資料
第十三回ネットワークチーム講座資料第十三回ネットワークチーム講座資料
第十三回ネットワークチーム講座資料densan_teacher
 
第十一回ネットワークチーム講座資料
第十一回ネットワークチーム講座資料第十一回ネットワークチーム講座資料
第十一回ネットワークチーム講座資料densan_teacher
 
第十回ネットワークチーム講座資料
第十回ネットワークチーム講座資料第十回ネットワークチーム講座資料
第十回ネットワークチーム講座資料densan_teacher
 
第八回ネットワークチーム講座資料
第八回ネットワークチーム講座資料第八回ネットワークチーム講座資料
第八回ネットワークチーム講座資料densan_teacher
 
第七回ネットワークチーム講座資料
第七回ネットワークチーム講座資料第七回ネットワークチーム講座資料
第七回ネットワークチーム講座資料densan_teacher
 
第六回ネットワークチーム講座資料
第六回ネットワークチーム講座資料第六回ネットワークチーム講座資料
第六回ネットワークチーム講座資料densan_teacher
 
第五回ネットワークチーム講座資料
第五回ネットワークチーム講座資料第五回ネットワークチーム講座資料
第五回ネットワークチーム講座資料densan_teacher
 
第四回ネットワークチーム講座資料
第四回ネットワークチーム講座資料第四回ネットワークチーム講座資料
第四回ネットワークチーム講座資料densan_teacher
 
第三回ネットワークチーム講座資料
第三回ネットワークチーム講座資料第三回ネットワークチーム講座資料
第三回ネットワークチーム講座資料densan_teacher
 
第一回ネットワークチーム講座資料
第一回ネットワークチーム講座資料第一回ネットワークチーム講座資料
第一回ネットワークチーム講座資料densan_teacher
 

Mehr von densan_teacher (18)

後期第六回ネットワークチーム講座資料2016
後期第六回ネットワークチーム講座資料2016後期第六回ネットワークチーム講座資料2016
後期第六回ネットワークチーム講座資料2016
 
後期第八回ネットワークチーム講座資料
後期第八回ネットワークチーム講座資料後期第八回ネットワークチーム講座資料
後期第八回ネットワークチーム講座資料
 
後期第七回ネットワークチーム講座資料
後期第七回ネットワークチーム講座資料後期第七回ネットワークチーム講座資料
後期第七回ネットワークチーム講座資料
 
後期第五回ネットワークチーム講座資料
後期第五回ネットワークチーム講座資料後期第五回ネットワークチーム講座資料
後期第五回ネットワークチーム講座資料
 
後期第四回ネットワークチーム講座資料
後期第四回ネットワークチーム講座資料後期第四回ネットワークチーム講座資料
後期第四回ネットワークチーム講座資料
 
後期第三回ネットワークチーム講座資料
後期第三回ネットワークチーム講座資料後期第三回ネットワークチーム講座資料
後期第三回ネットワークチーム講座資料
 
後期第二回ネットワークチーム講座資料
後期第二回ネットワークチーム講座資料後期第二回ネットワークチーム講座資料
後期第二回ネットワークチーム講座資料
 
後期第一回ネットワークチーム講座資料
後期第一回ネットワークチーム講座資料後期第一回ネットワークチーム講座資料
後期第一回ネットワークチーム講座資料
 
第十三回ネットワークチーム講座資料
第十三回ネットワークチーム講座資料第十三回ネットワークチーム講座資料
第十三回ネットワークチーム講座資料
 
第十一回ネットワークチーム講座資料
第十一回ネットワークチーム講座資料第十一回ネットワークチーム講座資料
第十一回ネットワークチーム講座資料
 
第十回ネットワークチーム講座資料
第十回ネットワークチーム講座資料第十回ネットワークチーム講座資料
第十回ネットワークチーム講座資料
 
第八回ネットワークチーム講座資料
第八回ネットワークチーム講座資料第八回ネットワークチーム講座資料
第八回ネットワークチーム講座資料
 
第七回ネットワークチーム講座資料
第七回ネットワークチーム講座資料第七回ネットワークチーム講座資料
第七回ネットワークチーム講座資料
 
第六回ネットワークチーム講座資料
第六回ネットワークチーム講座資料第六回ネットワークチーム講座資料
第六回ネットワークチーム講座資料
 
第五回ネットワークチーム講座資料
第五回ネットワークチーム講座資料第五回ネットワークチーム講座資料
第五回ネットワークチーム講座資料
 
第四回ネットワークチーム講座資料
第四回ネットワークチーム講座資料第四回ネットワークチーム講座資料
第四回ネットワークチーム講座資料
 
第三回ネットワークチーム講座資料
第三回ネットワークチーム講座資料第三回ネットワークチーム講座資料
第三回ネットワークチーム講座資料
 
第一回ネットワークチーム講座資料
第一回ネットワークチーム講座資料第一回ネットワークチーム講座資料
第一回ネットワークチーム講座資料
 

第十二回ネットワークチーム講座資料