-
KineticJSで管理されるHTML5 Canvasでkeydownイベントをリッスンする方法
KineticJSで管理されるHTML5 Canvasでkeydownイベントをリッスンする方法HTML5のcanvas要素は、デフォルトではキーボードフォーカスを受け取れないため、keydownイベントを扱うには少し工夫が必要です。この記事では、KineticJSで管理されるキャンバスに対してキーボードイベントを検知する方法を解説します。keydownイベントをリッスンする基本的な方法キーの押下を検知するには、押下状態を示すフラグとキーコードを組み合わせて判定します。if (keyIsPressed && keycode == somenumber) { doSomething();}
-
HTML5 Canvasで線幅を連続的に変化させた線を描画する方法
HTML5 Canvasで線幅が連続的に変化する線を描画するHTML5のCanvas APIには、1回のストローク内で線の太さ(lineWidth)を連続的に変化させる機能は標準では用意されていません。しかし、短いセグメントに分割して描画し、各セグメントごとに異なるlineWidthを設定することで、あたかも一本の線のように見える「先細り」や「なだらかに広がる」線を実現できます。以下のコードは、円形の軌跡に沿って線幅を徐々に変化させながら滑らかな曲線を描く実装例です。サンプルコードvar context = document.getElementById(canvas1).getContext
-
HTML5のiframeにおけるsrcdoc属性の代替手段とは?
HTMLの<iframe>タグは、Webページ内にインラインフレーム(inline frame)を作成するために使用されます。これにより、現在のページの中に別のHTMLドキュメントを埋め込むことができます。iframeタグの基本例<!DOCTYPE html> <html> <head> <title>HTML iframeタグ</title> </head> <body> <iframe src = https://www.tutori
-
ユーザーはHTML5のsessionStorageを無効にできる?ブラウザ別の設定方法
はい、ユーザーはHTML5のsessionStorageを無効にすることができます。ブラウザがlocalStorageやsessionStorageを受け付けないようにするのは簡単です。ここでは、主要なWebブラウザごとの設定方法を見ていきましょう。Firefoxの場合アドレスバーに「about:config」と入力してEnterキーを押すと、ブラウザの内部設定画面が表示されます。検索欄で「dom.storage.enabled」を探し、その項目を右クリックして「切り替え(Toggle)」を選択することで、DOM Storageを無効にできます。Internet Explorerの場合メニュー
-
HTML5・JavaScriptでビデオプレーヤーのスナップショットを撮る方法
HTML5の<video>要素とJavaScriptを組み合わせると、再生中の動画から簡単にスナップショット(静止画)を撮影できます。仕組みはシンプルで、<canvas>要素にdrawImage()メソッドを使って現在表示中の動画フレームを描画するだけです。スナップショット撮影の基本の流れ実装の手順は以下のとおりです。<video>要素で動画を読み込むスナップショットの描画先として<canvas>要素を用意するloadedmetadataイベントで動画の実際のサイズ(videoWidth / videoHeight)を取得し、アスペクト比を維持し
-
HTML5 File APIとAmazon S3マルチパートアップロードを組み合わせる方法
HTML5のFile APIとAmazon S3のマルチパートアップロード機能を組み合わせて利用することは可能です。ただし、実現するためにはバックエンドサーバーによる補助と、Amazon APIキーが必要になります。Amazon S3とはAmazon S3(Simple Storage Service)は、Amazon Web Services(AWS)が提供するWebサービスで、Webサービスインターフェースを通じてストレージを利用できるようにしたものです。2007年にサービスが開始され、現在では多くの企業や開発者に利用される定番のクラウドストレージとなっています。マルチパートアップロードの
-
WebSocketによるバイナリデータ転送とHTML5のBase64デコード活用法
WebSocketとBase64エンコードの組み合わせ WebSocketでバイナリデータを扱う場合、クライアントとサーバーの両方でBase64によるエンコード/デコードを行うのが一般的な手法です。Base64はバイナリデータをテキスト形式に変換する仕組みであり、テキストフレームしか扱えない環境でも安全にデータをやり取りできるようになります。 ブラウザ側で利用できる標準API WebSocketに対応しているすべての主要ブラウザには、Base64変換用の関数が標準で組み込まれています。 window.atob() — Base64文字列をデコード(元のデータに復元)します window.b
-
HTML5のcheckValidity()メソッドに対応しているブラウザはある?主要ブラウザでの動作と実装例
はい、checkValidity() メソッドはGoogle ChromeやOperaをはじめとする主要なモダンブラウザで問題なく動作します。このメソッドを活用すれば、フォーム入力値がHTML5の制約検証(バリデーション)ルールを満たしているかどうかを、JavaScriptから簡単に判定できます。 checkValidity()メソッドとは checkValidity()は、HTML5フォームバリデーションAPIの一部として提供されているメソッドです。対象の入力要素が妥当(valid)であれば true を、制約に違反していれば false を返します。あわせて validity プロパティ
-
HTML5で座標を地名に変換する方法|Google Maps APIによるリバースジオコーディング入門
リバースジオコーディングとはHTML5で取得した緯度経度(座標)を地名に変換するには、Google Maps APIを使って「リバースジオコーディング(逆ジオコーディング)」を実行します。ジオコーディングとは、人間が読める形式の住所を、地図上の場所(緯度・経度)へ変換する処理のことです。その逆、つまり地図上の位置情報を人間が読める住所に変換する処理はリバースジオコーディングと呼ばれます。GPSで取得した現在地の座標から住所を表示したい場合などに活用される技術です。マップの初期化例まず、緯度と経度を指定してマップを初期化する基本的な例を見てみましょう。function initMap() {
-
BluePrint・960gsのようなHTML5+CSS3フレームワークのおすすめ2選
BluePrint/960gsに代わるHTML5+CSS3フレームワークHTML5とCSS3を活用したWebサイト構築では、定番のBluePrintや960 Grid System(960gs)がよく知られていますが、それ以外にも優れたフレームワークがいくつか存在します。ここでは、特におすすめの2つのフレームワーク「52framework」と「Susy」をご紹介します。52frameworkSusy52frameworkの特徴52frameworkは、最新のWeb標準技術を手軽に取り入れられるオールインワン型のフレームワークです。主な特徴は以下の通りです。CSS3のグラデーションや複数シャドウ
-
Safari 5で使うHTML5ジオロケーションAPIの基本と実装例
HTML5のGeolocation APIを利用すると、ユーザーの現在位置情報をお気に入りのWebサイトと共有できます。JavaScriptで緯度と経度を取得し、そのデータをバックエンドのWebサーバーへ送信することで、周辺の店舗や施設の検索、地図上への現在地表示など、位置情報を活用したさまざまな機能を実現できます。 サンプルコード それでは、現在位置を取得する具体的な方法を見ていきましょう。以下の例では、ボタンをクリックするとgetCurrentPosition()メソッドが呼び出され、取得した緯度と経度がアラートとして表示されます。 <!DOCTYPE HTML> <ht
-
cache.manifestが初回のみ動作し、HTMLページで失敗する原因と対処法
cache.manifestが初回のみ動作し、HTMLページで失敗する原因と対処法 HTML5のアプリケーションキャッシュ(AppCache)を利用していると、cache.manifestが初回アクセス時には正しく機能するのに、2回目以降の読み込みでHTMLページの更新が反映されない・失敗するという問題が発生することがあります。主な原因は、キャッシュ対象外リソースの扱い方と、マニフェストファイル自体の更新がブラウザに認識されないことにあります。以下の対策を順に試してみてください。 対策1: NETWORKセクションにワイルドカード「*」を追加する マニフェストファイルの末尾に、次の記述を追加
-
HTML5キャンバスで基本のアニメーションを実装する方法
HTML5のcanvas要素には、図形や画像を描画するためのメソッドが用意されており、描画内容を消去することも可能です。これらをJavaScriptと組み合わせることで、キャンバス上で滑らかなアニメーションを表現できます。 キャンバスアニメーションの基本的な仕組み キャンバスアニメーションは、次の手順を短い間隔で繰り返すことで実現されます。 状態を更新する: 位置や角度などの描画情報を少しずつ変化させる 前のフレームを消去する: 古い描画内容をクリアして残像を防ぐ 再描画する: 新しい状態で図形や画像を描き直す 今回のサンプルでは、setInterval()を使って100ミリ秒ごとに描画
-
JavaScriptでHTML5オーディオをランダムに再生する方法
HTML5オーディオをランダムに再生する方法複数の楽曲の中からランダムに1曲を選んで再生したい場合、Math.random() を使うと簡単に実装できます。ここでは、楽曲リストの準備からランダム再生までの手順を解説します。1. 楽曲リストの初期化まず、再生したい楽曲のURLを配列としてまとめて渡し、コレクションを初期化します。init([ https://demo.com/songs/song1.mp3, https://demo.com/songs/song2.mp3, https://demo.com/songs/song3.mp3 ]);2. ランダム再生の実装次
-
HTML5 Canvasのrotate()メソッドで現在の原点を中心に回転させる方法
rotate()メソッドとはHTML5のCanvas APIには、現在の原点を中心にキャンバスを回転させるためのrotate(angle)メソッドが用意されています。このメソッドが受け取る引数は1つだけで、それはキャンバスを回転させる角度です。回転は時計回りに行われ、角度はラジアン単位で指定する点に注意してください。構文ctx.rotate(angle)度数法からラジアンへの変換「45度」のように普段なじみのある度数法で指定したい場合は、次の式でラジアンに変換できます。ラジアン = 度 × Math.PI / 180例えば90度なら Math.PI / 2、180度なら Math.PI となり
-
HTML5 Canvasの状態を保存・復元する方法(save()とrestore()の使い方)
HTML5 Canvasには、描画の状態を保存・復元するための重要なメソッドとして save() と restore() の2つが用意されています。 save() メソッドを呼び出すたびに、その時点のキャンバスの状態(塗りつぶし色、透明度、変換行列など)がスタックに積まれます。そして restore() メソッドを呼び出すたびに、スタックの最後に保存された状態が取り出され、コンテキストがその状態へと戻ります。 save() と restore() の概要 番号メソッドと説明 1 save()現在の描画状態をスタックにプッシュします。 2 restore()スタックの先頭にある状態
-
CSSのみで実現する円形アニメーション:border-radiusと透明な背景を使った円の描き方
CSSのみを使用して、透明な背景を持つ円を描画したい場合は、border-radiusプロパティとボーダー色の組み合わせを活用します。本記事では、回転する円弧のアニメーションを例に、具体的な実装手順をわかりやすく解説します。 円を描画するためのCSSコード 以下のコードでは、ページ全体に斜めのストライプ背景を敷き、その上で半円状の弧が回転するアニメーションを実現しています。最大のポイントは、太いボーダーのうち上部と左側のみに色を付け、残りの部分を透明にすることで「円弧」を表現している点です。 body { background: repeating-linear-gradient(
-
iOS SafariでWAVファイルを再生する方法(Content-Rangeヘッダーの設定)
iOS SafariでWAVファイルが再生できない問題iOSのSafariブラウザでWAVファイルを再生するには、サーバー側でContent-Rangeヘッダーを適切に設定する必要があります。このヘッダーが欠けていると、Safariは音声データを正しく読み込めず、再生に失敗することがあります。必要なHTTPヘッダーの設定例以下のヘッダーをレスポンスに追加することで、iOS SafariでもWAVファイルが正常に再生できるようになります。Content-Range: bytes XX-XX/XX Content-Type: audio/wav Content-Disposition: attac
-
CSS3とHTML5で不規則な形状のdivを作成する方法を徹底解説
CSS3を活用すれば、長方形や三角形など、さまざまな図形をHTMLのdiv要素だけで簡単に作成できます。画像を使用せずにCSSのみで図形を描けるため、ページの読み込み速度向上やメンテナンス性の面でもメリットがあります。ここでは、代表的な図形の作り方をコード例とともにわかりやすく解説します。長方形を作成する最も基本となるのが長方形です。widthとheightでサイズを指定し、backgroundで背景色を設定するだけで完成します。#shape1 { width: 300px; height: 150px; background: blue; }三角形を作成する三角形は、
-
Chrome for Android 4.4でpointer-events:noneがtouchmoveに効かないときの対処法
問題の概要 Chrome for Android 4.4(ChromeView)では、CSSのpointer-events: noneを指定しても、touchmoveイベントが正しく無効化されないという既知の問題があります。デスクトップ版Chromeや他のブラウザでは期待どおりに動作するため、モバイル向け開発時に混乱を招きやすいポイントです。 この問題に対する実用的な回避策は、JavaScript側でtouchstartイベントを捕捉し、preventDefault()を呼び出してブラウザの既定動作をキャンセルすることです。 touchstartイベントとaddEventListener()に