JavaScript

みなさんはCoffeeScriptを使うことが出来ますか? 僕はまだ使いこなすことが出来ていません。 だいぶ遅れているなぁと思いつつ、資料だけは集めています。

これからはおそらく相当な数のものがCoffeeScriptに変わるのではないか、と思っているので自分の遅さに焦っています。

ということで、今回僕が集めた、CoffeeScriptを勉強出来る資料を紹介したいと思います。 もしまだよい資料があればぜひ紹介してください。

The Little Book on CoffeeScript(日本語版)

CoffeeScript版「薄い本」です。 これはまだ日本語バージョンは出ていないのですが、日本語訳してくださった方がいるようです。 こういうのは本当に助かりますよね。 これを一読するだけでも相当CoffeeScriptについてわかりそうです。

The Little Book on CoffeeScript

CoffeeScriptの基礎 – ドットインストール

なんでもある「ドットインストール」ですが、やはりCoffeeScriptの場合もありました。 貴重な日本語文献なのでとても参考になります! ドットインストールのいいところは、様々な豆知識のようなもの(例えば今回のだと、公式ドキュメントで変換前と変換後を知れる、とか)をどんどん教えてくれるところですよね。 既にわかっている言語でもとりあえず見てみようかな、と思う気がおきます。

CoffeeScriptの基礎 – ドットインストール

CoffeeScript 入門! 怒濤の 100 サンプル!!

これは絶対に役に立つ! サンプルが100個もあればどうやっても習得出来そうですねw しかもこの「TM Life」さんはたくさんのCoffeeScriptに関する記事を書いています。 ぜひ参考にしましょう。

CoffeeScript 入門! 怒濤の 100 サンプル!!

node.js 不要! Windows でも簡単に CoffeeScript を使う方法

jsdo.it で CoffeeScript を使う方法

CoffeeScript 入門 基礎編 – CoffeeScript と JavaScript を 10個のサンプルで比較してみた

CoffeeScript と gl.enchant.js を使って15分で 3D ゲームを作ってみた. 動画もあるよ♪

CoffeeScript.org(英語)

最後はやはり公式ドキュメントを紹介します。 やはり公式ドキュメントが一番詳しく書いてあるのではないでしょうか。 また、node.jsを入れたり色々環境設定をしなくてもとりあえず動かせる「TRY COFFEESCRIPT」を使用出来るのはすごいよいですね。 なぜ最後に紹介したかというと、やはり英語だからです。少しハードルが高くなってしまいますよね。

CoffeeScript.org

最後に

今回はCoffeeScriptについて取り上げました。 この記事が参考になれば幸いです。 はやくCoffeeScriptだったりいっぱいあるフレームワークとかに触れなきゃ。。。

Read more

jQueryはとても便利なプラグインです。
JavaScriptの普及を助けたといっても過言ではありません。
jQueryのおかげで煩雑なコードをかかずに綺麗なコードで色々なものが作れるようになりました。
今回は少し忘れやすい、jQueryでフォームから値を取得する方法をまとめていきます。

テキスト

よく使われる1行のテキストボックスです。
これはとても簡単でform要素に .val() で値を取得することが出来ます。

HTML

<form id="test-form">
    <input type="text" name="test-form" value="56">
</form>

JavaScript

var formValue = $('#test-form [name=test-form]').val();
var val = Number(formValue) || 0; // NaNのときは0
alert(val); // => 56

ラジオボタン

値を取る、という意味では .val() で取得出来るのですが、実際に取得したいのは選択されている値を取りたいのですよね。
なので :checked で絞り込むということをやります。

HTML

<form id="test-form">
    <input type="radio" name="test-radio" value="1">
    <input type="radio" name="test-radio" value="2" checked>
    <input type="radio" name="test-radio" value="3">
</form>

JavaScript

var val = $('#test-form [name=test-radio]:checked').val();
alert(val); // => 2

チェックボックス

これが面倒。要素の取得方法はラジオボタンと変わらないのですが、複数選択している場合がある。jQueryで .val() でとれるのは複数ある場合は一番最初に出てくる要素の値だけ。
全部取るためには .map() でループ処理します。

HTML

<form id="test-form">
    <input type="checkbox" name="test-checkbox" value="1">
    <input type="checkbox" name="test-checkbox" value="2" checked>
    <input type="checkbox" name="test-checkbox" value="3" checked>
</form>

JavaScript

var $checked = $('#test-checkbox [name=test-checkbox]:checked');
var valList = $checked.map(function(index, el) { return $(this).val(); });
alert(valList); // => ["2", "3"]

複数あると思われるので配列に値を入れます。
.map() の使い方は以下のドキュメントを参考にしてみてください。

セレクトボックス(単一)

option要素に目もくれず、select要素の値を取れば終わりです。

HTML

<form id="test-form">
  <select name="test-select">
    <option value="A">This is A</option>
    <option value="B" selected>This is B</option>
    <option value="C">This is C</option>
  </select>
</form>

JavaScript

var val = $('#test-form [name=test-select]').val();
alert(val); // => "B"

もし This is B の部分を取ってきたい場合は以下のJavaScriptでいけます。

var text = $('#test-form [name=test-select] option:selected').text();
alert(text); // => "This is B"

セレクトボックス(複数)

複数だからまたループするのかぁと思ってたら、今回は全てjQueryがやってくれます。なんて便利なんだjQuery。さすがだよ本当。
普通に .val() しましょう。

HTML

<form id="test-form">
  <select name="test-multi-select" size="3" multiple>
    <option value="A">This is A</option>
    <option value="B" selected>This is B</option>
    <option value="C" selected>This is C</option>
  </select>
</form>

JavaScript

var val = $('#test-form [name=test-multi-select]').val();
alert(val); // => ["B", "C"]

ちなみに何も選択されていないときは空の配列で返ってきます。注意しましょう。

フォーム要素全部

フォームの値を全て取ってくることも可能です。
form要素に対して、 .serialize() で送信すると、URLのGETみたいに URLの?以降の部分が取得出来ます。 .serializeArray() で取得すると配列に分解したものが取得出来ます。

HTML

<form id="test-form">
  <input type="text" name="test-text" value="This is text." />
  <select name="test-multi-select" size="3" multiple>
    <option value="A">This is A</option>
    <option value="B" selected>This is B</option>
    <option value="C" selected>This is C</option>
  </select>
</form>

JavaScript

var $form = $('#test-form');
var query = $form.serialize();
var arrVal = $form.serializeArray();
alert(query); // => "test-text=This+is+text.&test-multi-select=B&test-multi-select=C"
alert(arrVal); // => [{name:"test-text", value:"This is text."}, 〜〜〜]

一気にformの値を全て取りたいときはこっちのほうが絶対便利。
やっぱりjQueryって便利ですね。

この記事を読んでいるあなたにおすすめ!

少し古いですがjQueryの使い方の基本はこれを読んでおけば完璧です。

jQueryクックブック
jQueryクックブック
posted with amazlet at 12.09.06
jQuery Community Experts
オライリージャパン
売り上げランキング: 86232
Read more

この記事はonextrapixelに掲載された Really Useful Resources and Tools for Responsive Web Design の内容を日本語訳したものです。

レスポンシブウェブデザインは最近まで小さなトピックの1つでしたが、今ではモバイルやタブレットブラウザをデザイナーやユーザーが最大限活かすべく多くのツールがモバイル端末周辺で開発されています。 レスポンシブデザインが小型端末に限られていないのは、最近公開された多くのツールはモバイルやタブレットの世界にターゲットを定め、綺麗で柔軟性に富むウェブサイトを出来るだけ簡単に構築しようとしているからです。 レスポンシブデザインに取り組むとき、ほとんどのデザイナーが考える最初のことは、メディアクエリーです。

この記事では、メディアクエリーの枠を超え、全てのモバイル用、タブレット用、そしてもちろんデスクトップ用のウェブサイトの見た目を向上させることが出来る、本当に役立つツールやリソースを紹介します。

レスポンシブウェブデザインのためのリソース

タッチイベントを扱う

モバイルやタブレットブラウザーではマウスを使わないことを私たちはわかっています。したがってタッチイベントを扱うことは、モバイルブラウザに対応したウェブサイトにするためにとても重要なことです。タッチイベントの扱いを簡単にしてくれるプラグインを開発者は開発してくれています。

Hammer.JS

ジェスチャーイベントを扱うJavaScriptライブラリーです。これは、タップ、ダブルタップ、ドラッグやトランスフォームに対応しています。このライブラリーは他のプラグインに依存していないライブラリーではあるが、jQueryプラグインとしても使うことが出来ます。

jGestures

ピンチや回転、スワイプ、端末を傾けるなどのジェスチャーイベントに対応するjQueryプラグインです。

Touchy

タッチイベントの扱いを助けてくれるとても軽量なJavaScriptライブラリーです。(2KB以下)jQueryのようなプラグインに依存していないライブラリーです。

レスポンシブグリッドを作成する

グリッドレイアウトは以前から存在していたが、レスポンシブデザインが話題に上がったころから、いくつかの新しいツールは柔軟なグリッドを作成することにより開発者を助けました。

Gridpak

カスタム可能な柔軟なグリッドを作成するオンラインツールです。カラムやパディング、ガターの数を変更することが出来ます。ブレイクポイントを追加出来、CSSを生成し、ダウンロード可能にします。さらにこのツールでは、Photoshop等でデザイン出来るようなPNG形式のグリッドテンプレートを配布していたりします。

FluidGrids

レスポンシブグリッドレイアウトのCSSを生成するもう1つのツールです。

Responsive Calculator

ピクセルデザインをレスポンシブなパーセンテージデザインに変換してくれるオンラインツールです。

Responsive Grid System

レスポンシブグリッドシステムはフレームワークではありません。またひな形にもなっていません。このサイトはレスポンシブウェブサイトを早く、簡単にかつ柔軟に作成する方法をまとめています。

簡単に柔軟で複雑なレイアウトを作成する

ページに合うレイアウトを作成することは、良いJavaScriptの手助けなしではとても複雑になります。柔軟性を保ったグリッドレイアウトを完璧にするための3つのプラグインをここでは紹介します。

Masonry

動的で適応出来るグリッドを作成するjQueryプラグインです。このプラグインはグリッドに合うように要素を再配置するプラグインです。

Isotope

このプラグインも同じように、グリッドに合うように要素を再配置するJavaScriptプラグインです。

The Wookmark jQuery Plugin

グリッド上にあるカラムに合うように自動的に要素を配置し、体系づけるjQueryプラグインです。

レスポンシブデザインでナビゲーションを扱う

小さな画面でナビゲーションを扱う方法は大きな疑問を覚える。ここにあげたリソースや記事はこの疑問に答えてくれることだろう。

Responsive Navigation Patterns

これはツールでもスクリプトでもないが、レスポンシブナビゲーションを扱うときに賛成や反対が出る解決策に対して共通のトレンドをまとめたすべてのデザイナーが読むべき記事です。

TinyNav

ナビゲーションリストを小さな画面向けのドロップダウン型のセレクトリストに変換するjQueryプラグインです。

Mobile Navigation jQuery Plugin

ナビゲーションリンクを小さな画面向けのドロップダウン型のリストに変換するもう1つのjQueryプラグインです。

レスポンシブなスライダー(スワイプを必要としない)

よいスライドショーを持つことは、ポートフォーリオや製品、ただの写真などを効果的に見せるのによい方法であり、ウェブサイトにいくらかの双方向性を持たせることが出来ます。モバイルユーザーにスライドショーを見せるよい方法は開発されています。

Responsive CSS3 Slider

ブラウザーのサイズに合わせたCSS3のスライダーです。このスライダーが備えているよいトリックは、小さな画面では矢印がスライドショーの内部に入り込むことです。CSS3なので、JavaScriptは必要ありません。(ただし、CSS3に対応していないブラウザーのためにJavaScriptが提供されます。)

ResponsiveSlides

番号なしリストを使い、小さなレスポンシブスライダーを作成するjQueryで作られた小さなプラグインです。

Blueberry

ブラウザーサイズに合わせたスライドショーを作成するjQueryプラグインです。

Panoramica

カスタマイズ可能な画像とテキストコンテンツで、ウェブデザイナーが綺麗なスライドを作成することが出来るJavaScriptプラグインです。

スワイプで動くスライダー

レスポンシブスライダーは素晴らしいが、ほとんどのモバイルやタブレットユーザーはネイティブアプリのネイティブアプリではスワイプしているため、スワイプ出来ないスライダーはいらいらすることでしょう。 なのでスワイプジェスチャーで動くスライダーを開発者が作成しました。

Swipe JS

ユーザーが異なるパネル間をスワイプすることが出来る本当に小さなJavaScriptスライダープラグインです。パネルには画像やテキスト、HTMLなどを埋め込むことが出来ます。

Sutunam Swipe Slider

小さなスライダーやフルスクリーンのスライダーになるスライダーです。ユーザーはスワイプや矢印での操作をすることが出来ます。

PhotoSwipe

モバイル上で動くイメージギャラリーやスライダーを作成するもっとも有名なJavaScriptプラグインです。このプラグインはiOSのネイティブ画像ギャラリーに影響されていますが、AndroidやBlackBerryでも同様に動きます。

RetinaDisplay端末のための画像処理

iPad3に新しいRetinaDisplayが搭載されたことにより、表示する画像のクオリティを調節することはより重要になりました。以下にあげるツールは、これらのRetina搭載端末に簡単な解決方法を提供し、よりよいクオリティの画像を提供するツールです。

Adaptative Images

既存のコードを1つも変える必要がなく、訪れたユーザーのスクリーンサイズをはかり、適切な画像を提供することが出来るJavaScriptベースの解決方法です。

Retina Images

RetinaDisplay対応の端末でユーザーが閲覧しているとき、画像を@2xバージョンの画像に変えるJavaScriptベースの解決方法です。これもまた、HTMLコードを変える必要はありません。

Retina.js

Retina端末のユーザーに対して画像を@2xに変えるもう1つのJavaScriptベースのプロジェクトです。このスクリプトはLESSを使用しています。

デザインをテストする

確かにレスポンシブに動くことは素晴らしいことなのですが、誰しもがデザインをテスト出来るモバイル端末やタブレットをもっているとは限りません。なのでレスポンシブデザインをテストするときに役に立つツールを紹介して終わりになります。

Resizer Bookmarklet

これはブックマークバーにドラッグ&ドロップすることで使用することが出来るブックマークレットです。テストしたいページでお気に入りから呼び出し、モバイルブラウザーやスクリーンサイズを設定します。

Screenqueri.es

ピクセル方眼上でデザインすることが出来、いくつかのモバイル端末やタブレットブラウザーのサイズがデフォルトでついているかなり新しいツールです。

Responsivepx

これは探している絶妙な区切り点を発見するのに役立つツールです。

この記事はonextrapixelに掲載された Really Useful Resources and Tools for Responsive Web Design の内容を日本語訳したものです。
レスポンシブデザインに関してここまで徹底的にまとめられている記事は見たことがありませんでした。 これでレスポンシブデザインに関するツールは完璧なんじゃないかと思うくらいです。 ぜひ参考にしてみてください。
Read more

この記事は 18 Free jQuery Plugins for Responsive Web Designing の内容を日本語訳したものです。 最近日本でもレスポンシブウェブデザインが流行ってきていますが、まだまだTipsがたまっていないと思ったため訳しました。 参考にしてみてください。

最近、ウェブデザインでもっとも需要のあるものの1つがレスポンシブレイアウトです。
レスポンシブレイアウトは、デザイナーが何か大きな成果を達成し、かつユニークですばらしいウェブサイトを作る、いくつかの素晴らしいエレメントを提供します。
これらのレスポンシブレイアウトはアイキャッチが強烈なため、簡単にユーザーの目を引くことが出来ます。

これらのレスポンシブレイアウトの更に素晴らしい特徴の1つが、PC、携帯電話、タブレットなど様々な電子機器に最適化された画面サイズに対応する力をデザイナーに与えることです。
テクノロジーの急速な発達により、誰もがレスポンシブウェブサイトを求め、レスポンシブウェブサイトのおかげでどんな電子機器からでも簡単にウェブサイトを見ることが出来るようになります。
レスポンシブレイアウトの人気は、多くの驚くべき特徴や柔軟性を提供出来ることに所以しています。
ウェブサイトが携帯電話やタブレットのような電子機器から見られるとき、全てのウェブサイトは、ナビゲーションや写真、スライダー、フォーム、カルーセルなどを全て最適化する必要があります。

レスポンシブウェブデザイン用のjQueryプラグインはいくらでも利用出来ますが、全てのプラグインが素晴らしく、効率的で、ウェブサイトの完全な最適化をすることが出来るかといえばそうではないでしょう。
そこで、たくさんあるプラグインの中から、素晴らしいプラグインを見つける手助けをするために、レスポンシブウェブデザインをする驚くべきjQueryプラグインを18個リスト化しました。
これらのプラグインは特に、ウェブサイトをよりレスポンシブにすることを助け、操作を簡単にし、ユーザー体験は素晴らしいものになるでしょう。
このリストのプラグインは手作業で選ばれており、プロのデザイナーもアマチュアのデザイナーもこれらのプラグインが有益であると感じることでしょう。なので、これらをチェックし、最も好きなものをピックアップしてください。

Isotope — An exquisite jQuery plugin for magical layouts (商用は有料)

Hoverizr – Responsive jQuery Photo manipulation plugin

Response JS

Responsive Image Gallery with a Thumbnail Carousel

jQuery Masonry — A layout plugin for jQuery

scrolldeck

PhotoSwipe

Supersized – Fullscreen Background Slideshow

The Heads-Up Grid

Elastislide – A Responsive jQuery Carousel Plugin

Transform a Menu to a Dropdown for Small Screens

ResponsiveSlides.js

Automatic Image Montage with jQuery

Doubletake

Blueberry – A responsive jQuery image slider

Adaptive Images in HTML

FitText — jQuery plugin for inflating web type

FitVids.JS

レスポンシブデザインを作成するにあたり、有益なjQueryプラグインがたくさんまとめてありますね。 個人的には、まだレスポンシブなサイトを作ったことはないのですが、作ることがあれば参考にしたいと思います。 何か間違いや質問等ございましたら、以下コメント欄、またはリプライ(@DAI199)までお願いします。
Read more

いままでjQueryのリファレンスサイトといえばjQuery日本語リファレンスでしたが更新止まっているので少し不満でした。(もちろん参考にはなるのですが)

新たなリファレンスサイトが誕生しました。マジで助かります。感謝します。 @s3pw さん作成のサイト、Qrefyです。

Qrefy – jQuery日本語リファレンス

トップ画像にもしましたがなんといっても見やすい!おしゃれ! そして解説も詳しく、サンプルも充実しています。

これからのjQueryリファレンスはこれに決定ですね!作者の方、ありがとうございます!!

Read more

PHPで0詰めをしようとした場合、printfで制御してやれば簡単に出来たのですが、JavaScriptの場合だとどうしても0詰めがうまく出来ない。 普通にやっちゃうと桁が合わずにカッコ悪い感じになってしまいます。

2012/8/6 14:4
2012/11/13 8:14
2012/1/3 8:9

8月6日20:18 追記

@inaba_n 様にアドバイスをいただいたので追記します。
以下のように書くと更に高速になります。

<script>
var date = new Date();
var dd = ("0"+date.getDate()).slice(-2); // 08
</script>

上記の書き方だと、最初に紹介した書き方より高速に動きます。
無理やり型変換をしている部分がない分それだけ速く動きますね。
情報提供ありがとうございます!
—–以上追記—–

調べた結果、ここのブログがとても参考になりました。
JavaScriptで日付取得と桁合わせ

コードは以下になります。

<script type="text/javascript">
// 1桁の数字を0埋めで2桁にする
var toDoubleDigits = function(num) {
  num += "";
  if (num.length === 1) {
    num = "0" + num;
  }
 return num;     
};

// 日付をYYYY/MM/DD HH:DD:MI:SS形式で取得
var yyyymmddhhmiss = function() {
  var date = new Date();
  var yyyy = date.getFullYear();
  var mm = toDoubleDigits(date.getMonth() + 1);
  var dd = toDoubleDigits(date.getDate());
  var hh = toDoubleDigits(date.getHours());
  var mi = toDoubleDigits(date.getMinutes());
  return yyyy + '/' + mm + '/' + dd + ' ' + hh + ':' + mi;
};
</script>

num+=”” の部分でNumber型をString型に強制的に変換してますね。
if文を使う形でよかったようです。

これでさきほど上にあげた少しかっこ悪かったものが桁が綺麗に揃い、かっこ良くなります。

2012/08/06 14:04
2012/11/13 08:14
2012/01/03 08:09

参考にどうぞ!

この記事を読んでいるあなたにおすすめ!

JavaScriptを勉強するならこの本がおすすめです。僕はこれからJavaScriptを学び始めました。

初めてのJavaScript 第2版
初めてのJavaScript 第2版
posted with amazlet at 13.06.20
Shelley Powers オライリージャパン 売り上げランキング: 394,333
Read more