Showing posts with label jquery. Show all posts
Showing posts with label jquery. Show all posts

3/05/2013

「jquery.utility.js」を公開しました。

先日リニューアルした「京巡りガイド」の開発時に派生してできた「jquery.utility.js」を公開しました。

jquery.utility.js

tx()やcreate()、isMail()などの機能を提供するjQueryプラグインです。

.create(tagName, elements)
.create() は、ほぼ .append() と似ていますが、生成する方法が異なります。
第一引数 tagName は、'div' や 'span' などのタグ名を記載します。
第二引数 elements は、生成する要素に与えるデータを Object 形式で定義します。
'css' の場合は、$(selector).css({color: 'rgb(255, 0, 0)'}) と同じ形式です。font-size などハイフンが入る値の場合は、css: {'font-size': '1.2em'} のように引用符で囲んでください。
'data' の場合は、data: {name: 'user name'} のように Object 形式で指定します。name-01 などハイフンが入る値の場合は、data: {'name-01': 'user name 01'} のように引用符で囲んでください。
また、上記以外の場合、'title/text' のようにスラッシュで区切ることで、同じ値を複数の属性に定義できます。
$('#create')
  .create('input', {
    id: 'create_input',
    'placeholder/title/value': 'Fill in your name'
  })
  .create('a', {
    id: 'a',
    href: 'http://jquery.com/',
    'title/html': 'A',
    data: {
      href: 'http://jquery.com/',
      tag: function() {
        return 'a';
      }
    },
    css: {
      color: 'rgb(255, 0, 0)',
      'font-size': function() {
        return '1.2em';
      }
    }
  })
;

.tx(string)
.tx() は、要素に title と html に同じ値を入れたい場合などに使用できます。
img 要素と input 要素(type:image)に使う場合は、alt と title に string が入ります。
input 要素(type:text)、input 要素(type:search)、input 要素(type:url)、input 要素(type:tel)、textarea 要素に使う場合は、title と placeholder に string が入ります。
その他の場合は title と html に string が入ります。
強制的に上記の 2 つの属性に string が入るので、個別に指定したい場合は、.tx() を使わず、.attr() などで個別に指定してください。
$('body')
  .find('#tx1').tx('tx1').end()
  .find('#tx2').tx('tx2').end()
;

.changeClass(remove, add)
.toggleClass() は、あれば削除、なければ追加をしますが、.changeClass() は、強制的に第一引数を削除、第二引数を追加します。
$('#changeClass2').changeClass('blue', 'red');

.doScroll(target)
.doScroll() は、画面スクロールを行います。引数 target が以下の場合、次のような挙動になります。
  • 与えられている場合:target の場所を position() で取得し、スクロールします。
  • 与えられない場合:ページの一番上(x: 0, y: 0)へスクロールします。
$().mobile() で true と判定された場合は、上記の場所へのスムーススクロールのアニメーション無しのジャンプになります。
$(document)
  .on('click', '#btn_doScroll1', function() {
    $().doScroll('#btn_doScroll2');
  })
  .on('click', '#btn_doScroll2', function() {
    $().doScroll();
  })
;

.isMobile(target)
.isMobile() は、アクセスしたデバイスがモバイルかどうかを UserAgent で判定します。引数 target が以下の場合、次のような挙動になります。
  • 与えられない場合:iPhone/iPad/iPod/Android であるかの結果を true/false で返します。
  • 'iPhone' の場合:iPhone であるかの結果を true/false で返します。
  • 'iPad' の場合:iPad であるかの結果を true/false で返します。
  • 'iPod' の場合:iPod であるかの結果を true/false で返します。
  • 'iOS' の場合:iPhone/iPad/iPod であるかの結果を true/false で返します。
  • true の場合:iPhone/iPad/iPod/iOS であるかの結果を Object 形式で返します。
var isMobile = $().isMobile(true);
$('#isMobile')
  .create('p', {'title/text': 'mobile: ' + $().isMobile()})
  .create('p', {'title/text': 'iPhone: ' + $().isMobile('iPhone')})
  .create('p', {'title/text': 'iPad: ' + $().isMobile('iPad')})
  .create('p', {'title/text': 'iPod: ' + $().isMobile('iPod')})
  .create('p', {'title/text': 'iOS: ' + isMobile.iOS})
;

.isMail(value)
.isMail() は、判定する値がメールアドレスかどうか(xx@xx.xx)を true/false で返します。引数 value が以下の場合、次のような挙動になります。
  • 与えられている場合:与えられた value がメールアドレスかどうかの判定をします。
  • 与えられない場合:$(this).val() を値として、メールアドレスかどうかの判定をします。
$(document)
  .on('keyup', '#isMail', function() {
    $('#result').tx('isMail: ' + $('#isMail').isMail());
  })
;

.addJS(file)
.addJS() は、head 要素の一番最後に JavaScript ファイルを追加します。
$().addJS('sample.js');

.addCSS(file)
.addCSS() は、head 要素の一番最後に CSS ファイルを追加します。
$().addCSS('sample.css');

.print(target)
.print() は、console.log() を行います。引数 target が以下の場合、次のような挙動になります。
  • 与えられている場合:console.log(target) を実行します。
  • 与えられない場合:concole.log($(this)) を実行します。
var isMobile = $().isMobile(true);
$('#print')
  .print(isMobile)
  .print()
;

確認環境
  • Chrome/Safari/Firefox/Opera/IE8+
  • iPhone/iPad/iPod touch/Android

サンプルの実行結果は、jquery.utility.js | Archives | Flügel でご覧ください。

3/04/2013

「京巡りガイド」の機能を少し変更しました

先日 リニューアルした京巡りガイド ですが、機能を少し変更しました。

変更点は以下の通りです。
  1. 詳細ページでの出発地が「現在地」の場合、および「現在地最寄りで検索」を選んだ場合に現在地の再取得と「現在地最寄りで検索」のヒット件数の更新を行うように修正。
  2. 路線ページで、路線中にある駅名やバス停名を押すことで、出発地はそのままで目的地を変更して詳細ページを表示する導線を追加。
  3. スマートフォンで本サイトを表示した場合、画面下部のメニューに「現在地地図」を追加。

今後、機能の追加・変更・削除や、神社仏閣・飲食店などのスポットデータの追加があれば、モーダルウィンドウでお知らせします。

2/28/2013

「京巡りガイド」をリニューアルしました

去年一度リニューアルした「京巡りガイド」ですが、この度またリニューアルしました。

京巡りガイド
動作環境:iPhone/Android 4/Google Chrome/Safari/Firefox/Opera

このウェブサービスは、京都市には色んな名所旧跡があるけど、それらはなかなか電車で行きづらいところにあるけど、バスだと巡りやすいということを踏まえ、様々な神社仏閣・名所・ホテル・飲食店などを電車とバスでルート案内する目的で作っています。
これに付随して、ホテルなら楽天トラベルなどで予約を、飲食店なら食べログで情報取得を、すぐにできるようにしてあります。

京巡りガイド | Archives | Flügel にて詳しい説明をさせていただいておりますので、ご興味があればご一読ください。

今回の変更点は以下の通りです。

1. jQuery Mobile の撤廃し、独自 UI へ変更
前回のリニューアルでは、jQuery Mobile を使ってみるという面があったので、全面 jQuery Mobile でしたが、個人的な好き嫌いもあって今回全て撤廃し、UI は独自に構築しています。jQuery Mobile に頼っていた画面遷移は Backbone.js を使っています。

2. 内部構造の一新につき、より正確なルート案内を実現
今までは、データベース代わりに使っていた Google Maps のマイマップで得られる KML を分解して使っていましたが、今回はその KML から一度 json に変更したものを読み込んでいます。それにより、内部での情報管理や計算がしやすくなり、データの読み込みスピードも速くなりました。また、最初のリリースから手をつけていなかったロジックも全面的に変更し、ルートの計測がより正確になりました。

3. ルート案内には徒歩時間も考慮
上記とも関連しますが、今回は出発地と目的地で案内する最寄りの駅やバス停までの徒歩時間もルートの時間として計算していますので、今までよりももっと現実味のある案内になりました。なお、徒歩時間は、一般的には分速 80m ですが、道路区画や信号等も考慮しなければならないので、分速 60m で計算しています。

4. Twitter/Facebook/foursquare への同時投稿
以前から Twitter と Facebook への投稿はできましたが、今回は Facebook/foursquare でのチェックインも可能にしております。

5. Facebook/foursquare でのチェックインは予め ID があるのでそのまま投稿
チェックインを行うには通常、その場所(大抵は現在地)から検索して、該当の場所にチェックインという流れですが、データには予め該当するチェックイン ID を記録しているので、検索せずにそのままチェックインできます。

6. スポットデータを約 900 件へ増加
このウェブサービスで使用しているデータは、上述したように、Google Maps のマイマップ機能を使って、ひとつひとつピンを立て、そのピンに様々な情報を記録し、データベース代わりとして使っています。このピンを今回約 900 件へと増加させました。

7. Android 4 での GPS 対応
以前は iOS 端末と Android 2.x 系でのみ有効だった GPS 機能を、今回は Android 4 にも対応させました。


京都での観光の際に、お役に立てたら幸いです。
京巡りガイド

12/29/2012

CSS3 によるローディングアニメーションを生成する jQuery プラグイン jquery.cssloading.js をリリースしました

CSS3 によるローディングアニメーションを生成する jQuery プラグインを作ってみました。iOS や Android といった、スマートフォン用のプラグインという位置づけです。cssloading() でアニメーション開始、stopcssloading() でアニメーション停止を行います。アニメーションの形やスピードなどは、プロパティを与えて設定します。
GitHub: jquery.cssloading.js

☆確認環境
iOS/Android

☆プロパティ一覧
  • type:アニメーションの形(dot/line/square/block/eddy)
  • width:表示されるアニメーションのサイズ(数値)
  • color:色(CSSで定義できる値)
  • size:表示されるひとつひとつのサイズ(数値)
  • items:表示されるアイテムの数(数値、「type」が「dot」の場合は円を構成する数、それ以外は1行の数)
  • speed:アニメーションのスピード(ミリ秒)
  • clockwise:右回りか左回りか(「true」が右回り、「false」が左回り)
  • direction:アニメーションを行う起点の方向(「left」「right」「top」「bottom」)
  • shape:表示されるひとつひとつの形(「circle」「square」)

☆使用できるプロパティの種類
  • dot:direction/shape以外
  • line:width/clockwise以外、「direction」は「left」または「right」
  • square:width/direction以外
  • block:width/clockwise以外
  • eddy:width/direction以外

☆ファイルの読み込み
<script type='text/javascript' src='http://code.jquery.com/jquery-latest.js'></script>
<script type='text/javascript' src='jquery.cssloading.min.js'></script>


☆html
<button>Play/Stop</button>
<div id='loading'></div>


☆JavaScript(dot)
// 開始
var option = {
  type: 'dot',
  width: 100,
  color: 'rgba(0, 102, 255, .9)',
  size: 3,
  items: 30,
  speed: 1000,
  clockwise: false
};
$('#loading').cssloading(option);

// 終了
$('#loading').stopcssloading();


☆結果
flugel.bizでご確認ください。


☆JavaScript(line)
// 開始
var option = {
  type: 'line',
  color: 'rgba(255, 255, 255, .9)',
  size: 5,
  items: 10,
  speed: 1000,
  direction: 'left',
  shape: 'square'
};
$('#loading').cssloading(option);

// 終了
$('#loading').stopcssloading();


☆結果
flugel.bizでご確認ください。

その他のサンプルは jquery.cssloading.js | Archives | Flügel にて公開しています。

12/07/2012

jquery.twitter.widget.js をリリースしました

Twitter のウィジェットを仕事で使うことになったんですが、Twitter API が 1.1 になったので、既存のウィジェットを使うと 来年 3 月 5 日以降サポートがされなくなる らしいのです。そこで、本家のウィジェット も新しくできたらしいので見てみたら、カスタマイズしづらいって思ったので、その案件専用のウィジェットを作りました。でもこれを汎用的にしておくと、他の案件でも使えるかもしれないし、これを使って幸せになる人もいるかもしれないので、jQuery プラグインとして作りました。

wings1685/jquery.twitter.widget.js


【使い方】
ダウンロード後(必要であれば解凍後)に生成された「jquery.twitter.widget.min.js」をhtmlに指定します。
<script type='text/javascript' src='http://code.jquery.com/jquery-latest.js'></script>
<script type='text/javascript' src='jquery.twitter.widget.min.js'></script>
また、生成された「twitter.php」をどこかのディレクトリにアップロードします。ここではサンプルとして、「/api/」にアップします。


【機能詳細】
「$(selector).twitterWidget()」でターゲットとするTwitterユーザのツイートを取得し、表示します。表示する内容やツイートを表示する速さなどはプロパティを設定することで変えられます。

プロパティ一覧
  • screen_name:対象とするTwitterアカウント名
  • count:最大表示件数(最大200件)
  • speed:ツイートを表示していくスピード(秒)
  • exclude_replies:リプライのツイートを表示するかどうか(「true」で排除、「false」で表示)
  • include_rts:リツイートを表示するかどうか(trueで表示、falseで排除)
  • dateformat:日付のフォーマット(「Y年M月D日 h時m分s秒」など)
  • path:「twitter.php」までのパス(「./api/」など)
  • src:表示する部分のソース
  • src.header:ヘッダ部分
  • src.body:本体部分
  • src.footer:フッタ部分
  • src.reply:リプライ部分
  • src.retweet:リツイート部分
  • src.favorite:お気に入り部分

src内で指定できる予約文字列
  • $icon$:アイコン(a要素で囲まれたimg要素として書き出します)
  • $screen_name$:アカウント名(a要素で囲まれて書き出します)
  • $name$:表示名(a要素で囲まれて書き出します)
  • $description$:プロファイル文章(Twitterの設定で「URL」を指定している場合はこれも書き出します)
  • $text$:ツイート文章
  • $created_at$:日付(a要素で囲まれて書き出します)
  • $logo$:ロゴ(ツイッターロゴをa要素で囲まれたimg要素として書き出します)
  • $reply$:リプライアクション(「src.reply」で指定していればこの内容で書き出します)
  • $retweet$:リツイートアクション(「src.retweet」で指定していればこの内容で書き出します)
  • $favorite$:お気に入りアクション(「src.favorite」で指定していればこの内容で書き出します)
  • $action$:上記の「$reply$」「$retweet$」「$favorite$」をまとめて書き出します
※「src.header」「src.body」「src.footer」で指定できる予約文字列です。
必ず「$」で囲んでください。



【使用例】
ヘッダは「tw_header」、本体は「tw_body」、フッタは「tw_footer」というクラスを持ったdiv要素の中に書き出されます。
任意で指定したソースで書き出されるので、CSSでお好みのスタイルを付けてください。

html:
<div id='twitter'></div>

JavaScript:
サンプル1
ヘッダとフッタなし、リプライ等のアクションはテキスト表記、スピードが5秒ごとのサンプルです。
var option = {
  screen_name: 'wings1685',
  speed: 5,
  dateformat: 'Y/M/D h:m:s',
  path: './api/',
  src: {
    body: "<div class='tw'><span class='tw_text'>$text$</span> <span class='tw_date'>$created_at$</span><div>$reply$$retweet$$favorite$</div></div>",
    reply: 'Re:',
    retweet: 'RT',
    favorite: '★'
  }
};
$('#twitter').twitterWidget(option);


サンプル2
ヘッダとフッタあり、リプライ等のアクションは画像指定、スピードが10秒ごと、リプライのツイートなし、リツイートなしのサンプルです。
var option = {
  screen_name: 'wings1685',
  speed: 10,
  exclude_replies: true,
  include_rts: false,
  dateformat: 'Y年M月D日 h時m分s秒',
  path: './api/',
  src: {
    header: "<div class='clearfix'><strong>$icon$</strong><span>$screen_name$</span><span>($name$)</span></div><p>$description$</p>",
    body: "<div class='tw'><span class='tw_text'>$text$</span> <span class='tw_date'>$created_at$</span><div>$action$</div></div>",
    footer: "<div class='tw'>$logo$<span>Twitter</span></div>",
    reply: "<img src='./reply.png' alt='' title='' />",
    retweet: "<img src='./retweet.png' alt='' title='' />",
    favorite: "<img src='./favorite.png' alt='' title='' />"
  }
};
$('#twitter').twitterWidget(option);


【サンプルソース】
ひとつのhtmlにまとめた例をサンプルソースをとして以下に挙げます。
<!DOCTYPE HTML>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <title>jquery.twitter.widget.js</title>
  <script src="http://code.jquery.com/jquery-latest.js"></script>
  <script src="./js/jquery.twitter.widget.min.js"></script>
  <script>
    $(function() {
      var option = {
        screen_name: 'wings1685',
        speed: 10,
        exclude_replies: true,
        include_rts: false,
        dateformat: 'Y年M月D日 h時m分s秒',
        path: './api/',
        src: {
          header: "<div class='clearfix'><strong>$icon$</strong><span>$screen_name$</span><span>($name$)</span></div><p>$description$</p>",
          body: "<div class='tw'><span class='tw_text'>$text$</span> <span class='tw_date'>$created_at$</span><div>$action$</div></div>",
          footer: "<div class='clearfix'>$logo$<span>Twitter</span></div>",
          reply: "<img src='./reply.png' alt='' title='' />",
          retweet: "<img src='./retweet.png' alt='' title='' />",
          favorite: "<img src='./favorite.png' alt='' title='' />"
        }
      };
      $('#twitter').twitterWidget(option);
    });
  </script>
</head>
<body">
  <div id="twitter"></div>
</body>
</html>


【確認環境】
jquery.twitter.widget.js は下記のブラウザでお使いいただけます。
  • Chrome
  • Safari
  • Firefox
  • Opera
  • Internet Explorer 7 以降

【実行結果】
flugel.biz でご確認ください。

10/18/2012

myFacebookStyle に「一番上に戻る」ボタンを追加しました

Facebook って、スクロールしていって過去の post を見ていると、一番上に戻るのにめんどくさい場合があるので、myFacebookStyle(Chrome/Safari 拡張)に「一番上に戻る」ボタンを追加しました。

ふと思ってサクっと実装したので、もしかしたら変な挙動をするかもしれませんが、ちょっとめんどくさいのから解放されます。



myFacebookStyle(Chrome 拡張)
myFacebookStyle(Safari 拡張)

9/13/2012

myFacebookStyle をリニューアルしました

Safari/Chrome 機能拡張 myFacebookStyle をリニューアルしました。Facebookの見た目のスタイルを簡単な操作で変更できます。プリインストールテーマとして5種類ありますが、自分で作ったテーマを最大5件まで保存できます。

Chrome 拡張:myFacebookStyle
Safari 拡張:myFacebookStyle

【Version 2 での主な変更点】
  • 操作画面のデザイン変更
  • カラーピッカーの実装
  • 内部構造見直しによる高速化

【変更できる部分】
全体
  • 全体(背景色・枠線色・文字色)
  • リンク(文字色)
  • オンマウス時のボタン(背景色・文字色)
  • 補助文(文字色)
  • ボタン類(背景色・枠線色・文字色)
  • アイコン画像(角丸にする/しない)

ヘッダ
  • 全体(背景色・枠線色・文字色)
  • オンマウス時(背景色・文字色)

通知部分
  • 全体(背景色・枠線色・文字色)
  • オンマウス時(背景色)
  • 新着通知(背景色・文字色)
  • ユーザ名(文字色)

コメント
  • 全体(背景色・文字色)
  • リンク(文字色)
  • 補助文(文字色)
  • 新着表示(枠線色)
  • コメント書き込み部分(背景色・文字色)

下の通知部分
  • 全体(背景色・枠線色・文字色)
  • 表示(表示する/しない)
  • 場所(左下/右上)

チャット部分
  • 全体(背景色・枠線色・文字色)
  • ヘッダ(背景色・文字色)
  • オンマウス時(背景色・文字色)

リアルタイムフィード
  • 全体(背景色・枠線色・文字色)
  • オンマウス時(背景色・文字色)

設定
  • この拡張の言語(英語・日本語)
  • 初期化

【インストール方法】
(Safari 拡張の場合)
ダウンロードした後、「myFacebookStyle.safariextz」というファイルをダブルクリックするだけでインストールされます。


(Chrome 拡張の場合)
「Chrome に追加」をクリックするだけです。


【機能詳細】
インストール後、facebookにアクセスして右クリックを行うと、以下のように「myFacebookStyle」というメニューが表示されます。


このメニューをクリックすると、操作画面が表示されます。


各項目をクリックし、「設定」を押すことにより表示されるカラーピッカーやボタンで決定していくことで、自分好みのスタイルに調整できます。背景色や文字色、枠線色、アイコンの角丸化、通常は左下に表示される通知を右下にしたり、様々なことができます。



プリインストールのテーマは5種類用意されており、そのテーマをベースに変更していくことも可能ですし、ゼロから設定していくこともできます。もちろん、保存したテーマを削除することもできます。


複数のブラウザで同じテーマを使用したいときは、「出力」を押します。するとダウンロード画面が表示されるので名前を付けて保存し、読み込み先のブラウザで読み込むと同じテーマが適用されます。Chrome/Safari共に同じファイルが生成されるので、Chromeで生成したテーマをSafariで適用させることもできます。


※フリーツールですので、苦情・損害等につきましては、応じかねます。
※改変その他倫理上相応しくないご使用はお控えください。

7/23/2012

「京巡りガイド」を公開しました

昨年、京都で遊ぼう! として公開した、京都での観光名所やホテル等の観光案内(ルート検索付き)のウェブサービスですが、今回「京巡りガイド」としてリニューアル公開しました。
以前は JavaScript ベタ書きでしたが、今回 jQuery + jQuery Mobile で構築してみました。データを読み込むのに Cache_Lite をかましてるので、3 時間はキャッシュから取得します。ローディングアニメーションは、自作の jQuery プラグイン「jquery.wakeup.js」を使ってます。

京巡りガイド

**動作確認環境
スマートフォン
  • iPhone 4 以降
  • iPod touch(iOS 4) 以降
  • Android(OS 2.3) 以降
タブレット
  • 新しい iPad
パソコン
  • Safari 5 以降
  • Chrome 20 以降
  • Firefox 14 以降

「京巡りガイド」では、GPS現在地や指定した出発地から目的地までのルートを検索できます。ルートは、JRや私鉄、地下鉄の各鉄道や市バスを利用した結果が検索されます。
検索画面では次の情報を見られます。駅とバス停では時刻表、ホテルとショップでは電話番号、神社仏閣と観光スポットでは写真、全てのカテゴリで地図を表示します。
詳細画面では次の情報を見られます。駅とバス停では乗り換えられる距離にある駅やバス停、ホテルとショップでは電話番号とルート検索、神社仏閣では写真とWikipediaの情報とルート検索、観光スポットでは写真とルート検索、全てのカテゴリで地図および近くに駅があった場合は食べログサイトへのリンクを表示します。また、ルート検索の保存も可能です。

神社仏閣やホテルなどの一覧を見る
「検索して選ぶ」でホテル名などを入力(セレクトメニューでカテゴリを絞ることも可能)するか、「カテゴリから選ぶ」「最寄りの施設から選ぶ」でのボタンを押すと一覧ページが表示されます。
「検索して選ぶ」では、よみがなでも検索できます。「カテゴリから選ぶ」で表示した場合、初期状態では「五十音順」の「あ行」になっています。「五十音順」では「あ行」「か行」「さ行」「た行」「な行」「は行」「ま行」「や~ん」を、「近距離順」では「500m以内」「1km以内」「2km以内」を選べます。

「基本情報」では、「読み方」「(出発地からの)直線距離」「路線(駅・バス停のみ)」「Tel(ホテル・ショップのみ)」が表示されます。また、「時刻表」(駅・バス停のみ)は「駅から時刻表」(駅)・「京都市バス」(バス停)へ、「予約」(ホテル・ショップのみ)は「楽天トラベル」もしくは「るるぶ」へ、「評価」(ショップのみ)は「食べログ(掲載されている場合のみ)」へ、それぞれジャンプします。「写真」(神社仏閣・観光スポットのみ)を押すと、Google画像検索での該当施設を検索した結果が表示され、「Tel」(ホテル・ショップのみ)は電話をその場でかけられます。また、「出発地にする」を押して、出発地に指定することができます。
「地図」を開くと、出発地が青いピンで、該当施設を赤いピンで表示した地図が表示されます。
「ルートなどの詳細」を押すと、出発地から該当施設までのルートなどを示すページに移ります。

ルートなどの詳細を見る
一覧ページで「ルートなどの詳細」を押すと、出発地から該当施設までの電車やバスによるルートや周辺地図などの詳細ページが表示されます。
「基本情報」では、一覧ページでの「基本情報」に加え、「目的地周辺の飲食店」として、該当施設の周囲1km以内にある駅を元に検索した「食べログ」へのリンク(周囲に駅がない場合は表示されません)が、神社仏閣の場合はWikipediaの情報が、それぞれ表示されます。

「ルート」を開くと、最大3件までルート情報が表示されます。駅やバス停の情報と、路線や時刻表(駅の場合は「駅から時刻表」、バス停の場合は「京都市バス」にジャンプします)、乗り換え(ある場合)のボタンが表示されます。
また、出発地から経由地も含めた該当施設までの大まかな地図も表示します。

「乗り換え」を押すと乗り換え元と乗り換え先をピンで示した地図を表示します。

「(該当施設)周辺地図」を開くと、該当施設周辺の地図を表示します。大きな地図で見る場合(iOSの場合は地図アプリに自動切り替え)は、「大きな地図で見る」を押してください。

「SNS連携」を開くと、TwitterとFacebookへ投稿できるエリアが表示されます。投稿したくない共有先はフリップスイッチでオフにできます。投稿するには、ナビゲーションエリア(パソコンやiPadは画面左、その他は画面下)にある「SNS連携」を開いて接続します。

降りる駅までの情報を見る
詳細ページの「ルート」内の路線名を押すと、路線内の駅やバス停の一覧ページが表示されます。乗車駅・バス停は赤で、降車駅・バス停は黄で表示されます。
※バスの場合は、往路と復路で通るバス停が異なるので、目安とお考えください。

「乗り換え」を押すと、その駅やバス停で乗り換えられる路線が表示されます。

foursquareのExplorer機能を使って現在地から近くの施設を探す
foursquareのExplorer機能を使って、現在地から近くの施設を探すことができます。ナビゲーションエリア(パソコンやiPadは画面左、その他は画面下)にある「SNS連携」を開いてfoursquareに接続します。

ナビゲーションエリアにある「最寄りの施設から選ぶ」内の「explorer」を押し、表示されたページで「飲食店」「カフェ」「バー」「ショップ」「美術館等」を選ぶと、結果が表示されます。電話番号が登録されている場合は、電話ボタンが表示されます。また、foursquareでのvenueページへジャンプするボタンも表示されます。

ルート検索を保存する
全てのページは、「このページを保存」を押すことにより、端末内のストレージに情報を保存することができます。

出発地が現在地で詳細ページを保存した場合は、次回アクセスした際の現在地からルートを計測します。

保存したページを削除したい場合は、「削除モード」を押してモードを変更し、削除したいページを押してから「削除」を押してください。

GPS計測について
GPSはGeolocation API を用いて計測しており、スマートフォン端末でのGPS設定が有効の場合に発動しますが、パソコンでアクセスした場合は取得せずに、現在地を「京都駅」としています。

5/18/2012

ローディングアニメーションを生成する jQuery プラグイン jquery.wakeup.js

ローディングアニメーションを生成する jQuery プラグインを作ってみました。wakeUp() でアニメーション開始、goToSleep() でアニメーション停止を行います。アニメーションの形やスピードなどは、プロパティを与えて設定します。
GitHub: jquery.wakeup.js

☆確認環境
Chrome/Safari/Firefox/Opera(heart 以外)

☆プロパティ一覧
  • type:アニメーションの形(circle/dot/line/beat/star/heart)
  • color:色(CSSで定義できる値)
  • size:サイズ(canvasのサイズ、数値)
  • speed:アニメーションのスピード(ミリ秒)
  • clockwise:右回りか左回りか(trueが右回り)
  • item:表示されるアイテムの量(数値)
  • itemSize:表示されるアイテムのサイズ(数値)
  • phase:アニメーションの段階(数値)
  • fade:fade inもしくはfade out する際の完了までの時間(ミリ秒)
  • fadeIn:fade inするかどうか(trueで実施)
  • fadeOut:fade outするかどうか(trueで実施)

☆ファイルの読み込み
<script type='text/javascript' src='http://code.jquery.com/jquery-latest.js'></script>
<script type='text/javascript' src='jquery.wakeup.js'></script>

【使い方(dot)】
☆html
<button id='dot'>Play/Stop</button>
<div id='wake_dot'></div>

☆JavaScript
[ 開始 ]
var option = {
  type: 'dot',
  color: 'rgb(255, 0, 0)',
  size: 50,
  speed: 30,
  clockwise: false,
  item: 20,
 itemSize: 1
};
$('#wake_dot').wakeUp(option);

[ 終了 ]
$('#wake_dot').goToBed();

☆結果



【使い方(heart)】
☆html
<button id='heart'>Play/Stop</button>
<div id='wake_heart'></div>

☆JavaScript
[ 開始 ]
var option = {
  type: 'heart',
  color: 'rgb(255, 0, 255)',
  size: 30,
  speed: 50
};
$('#wake_heart').wakeUp(option);

[ 終了 ]

☆結果