2011年4月アーカイブ

2011年4月30日

【Jリーグ観戦2】4/30 FC東京 VS 札幌


DSC07403.jpg本日4月30日は、味の素スタジアムまでJ2リーグを観戦しに行ってきました。

カードは、FC東京 VS コンサドーレ札幌です。

味の素スタジアムには、約17,000人の観客が来ていました。この数字を、多いと感じる人もいるかもしれませんが、2011年度の開幕戦に約21,000人が来ていたことを考えると、若干寂しい数字です。昨年度は、FC東京の平均観客動員数は約25,000人ですので、やはり本日は、観客動員数が少なかった日と言えるでしょう。

一方のコンサドーレ札幌ですが、お目当てのゴン中山はベンチ外でした。しかし、河合竜二や高木純平など、かつてJ1でレギュラーだった選手がいたので、初めて見る選手ばかり...というわけではありませんでした。

試合の結果は、0-0だったのですが、FC東京はやはり別格のチーム力を持つといった印象を持ちました。ピッチを広く使えるし、特に前半はサイドの鈴木達也を中心として厚みのある攻撃を展開していました。(点が入らなかったのが残念!)

ただし、後半になると札幌もパスワーク、個々人の動きが良くなってきたため、何度かチャンスを作る場面もあり、どちらが勝つかわからない良い試合だったと思います。

3日には、再び等々力へ。。。川崎 VS 磐田の試合を見に行ってきます。


2011年4月29日

jQueryで、div要素を時間差で上から落とす。


ついこの間まで、Appleのサイトでナビゲーションがページ表示と時間差で上からストンと落ちてきました。
あれと似たような、上からストンと落とす機能で、このようなものを実現するjavascriptを書きました。

JQueryと共に読み込ませているスクリプトは、以下に記載しておきます。
/*============================================
	"toujyou.js" is written by HAKASHUN
============================================*/
/*boxというクラス属性がつけられた要素を隠す*/
$(document).ready(function(){
	$(".box").hide();
});
/*変数を予めセットする*/
var i = 0;
var int=0;
/*ページがロードされたら、touyjouファンクションを作動させる。ここの数値は、ロードされてから、toujyou(i)を動作させるまでのタイムラグ*/
/*yattoファンクションは、1000ミリ秒立ってから作動させる*/
$(window).bind("load", function() {
    setTimeout("yatto()",1000);
});

function yatto(){
	var int = setInterval("toujyou(i)",200);
}

function toujyou() {
     var boxs = $('div.box').length;
     /*boxsの数全て完了したら、動作のループを止める*/
     if (i >= boxs) {
          clearInterval(int);
    }
    /*wrapperクラス(非表示状態への動作指令)、数値は表示スピード*/
    $('.box:hidden').eq(0).animate({
    height:'toggle',
    opacity:'toggle',
    marginTop: "0.6in"
    },200)
    /*変数iに値を追加する*/
    i++;
}

2011年4月28日

"A designer-founder that has business acumen and an understanding of engineering will be in the best position."


スクリーンショット(2011-04-28 13.09.11).png
"A designer-founder that has business acumen and an understanding of engineering will be in the best position."

昨日、今年で十年のつきあいになる(ということを数えてビックリ)東大の先輩から、上記の言葉と共にオンライン記事を紹介していただきました。

「うぉ英語か。。。」と思い、朝になるまで"後読み"状態にしていたのですが、簡単な英語(少しWebをかじっていて、サービス名も知っていたこともあり)だったので、感想でも書こうと思います。

僕は、今ビジネスとかまったくわからない(I don't have business acumen...w)のですが、
DesignerでありHackerである必要性は以前から強く感じていました。僕はどちらも極めているわけではないし、そういった人たちがいるフィールドでビジネスをしていないので、これが確かな意見なのかはわかりません。
ただ、Webというメディアを通して自分やチームが"作りたいもの"を妥協せずに本当に作り上げるには、絶対にDesignerでありHackerである人が必要になると思います。

DesignerとHackerという関係性ではありませんが、
この記事を紹介してくれた東大の先輩も、Ageで代表をしていた江口もWebというものを理解し、チラシやパンフレットの制作過程、広報やブランディングなども大変心得ていました。きっと、そういった分野にチャレンジしたり、勉強したのだと思います。
僕は彼らと一緒に何かをする際にWebを作ったり、ビラやポスターを作ることが多かったのですが、その中でリーダーと呼ばれる彼ら(最終的な決断をする人)が自分の作業領域の理解をしてくれていることに大きな安心感(作業のしやすさみたいな感覚)を感じていました。
逆に言えば、僕自身はもう少し、彼らの仕事や考え方について歩み寄らなければいけなかったかもしれません。

この経験と、この記事を読んで、
何かを興したり成し遂げる際には、与えられた役割をこなすための専門的なスキルを上げると同時に、仲間がこなしている役割について理解するスキルを上げることも大変重要だと、改めて感じます。

それが、共に作り上げるもののクオリティ上げたり、スピードを促進させたり、自分自身の仕事を楽にすることにつながると思うのです。
それができているチームや事業には、魅力があり、自然と協力したい人や、投資家が集まってくる。そういうことではないかと何となく思いました。

AGESTOCK2011~SpringFestival~に行ってきました。


4月26日に、渋谷O-EASTにて行われたイベント、AGESTOCK2011~SpringFestival~に行ってきました。

僕は、このイベントを企画・制作している学生団体に昨年まで所属していました。2007年以来、初めてお客さんとしてAgeイベントを見る機会です。

少し個人的な感覚で、感想を述べさせてもらうと、AGESTOCKという団体から引退したという実感をはじめて感じました。後輩の姿や、観客としての目線でステージを見たりしたのもあるのですが、共に引退した同期がステージを眺める姿を見て、そのことをとても強く感じたのです。

5ヶ月前に横浜アリーナのステージに立った時に見えた景色とは、異なる意味で素晴らしい景色を見ることができました。

昨年度は素晴らしい仲間と本当に一生味わうことのできないような貴重な経験をしたんだなと。

そして僕たちが追いかけた夢をこうして後輩たちが受け継いで追い続けてくれるんだなと。

そして今後も後輩たちのイベントを通して、同期やこの団体で出会った人たちと再会できるんだな...と。
さりげなく僕はそんなことを感じていました。

かなりマニアックになりますが、Moonlight Stageの転換Vとステージの幕が開く所の連動が鳥肌ものでした。お客さんの目線の動きがよく読めてるし、感情、空間を作り出せていたと思います!

その他にも感動した点、すごいと思った点はたくさんありますが、長くなるので、後輩に会った時に直接言います★
楽しい時間をありがとう!これからも、応援してます。

P.S.最後のフィナーレ映像は、ちんねんっぽい気がしましたw

2011年4月25日

【Jリーグ観戦1】4/23 川崎F VS 仙台


110423_1556~01.jpg  一昨日、等々力競技場にJリーグを見に行ってきました。震災によりリーグが中断していたのですが、23日より再開したのです。
 どの試合を見に行こうか迷いましたが、ベガルタ仙台のチーム、サポーターの姿をこの目で見たくて、等々力に向かいました。天候はあいにくの雨、そして強風でしたが、約15,000人のサポーターが来ていました。
 ベガルタ仙台のサポーターは、ジュビロ磐田を応援している自分にとって、忘れることのできない存在です。というのも、以前J1・J2入れ替え戦で、仙台は磐田と対峙したチームだからです。
絶対にJ2に落ちたくない磐田と、毎年J1に行けそうで行けなかった仙台の勝負は、わずかな差で磐田が勝利を納めました。ヤマハスタジアムまで駆けつけた私は、試合後、勝利のお祝いをするため、浜松に向かったのですが、道ばたで仙台のサポーターの方とすれ違うことがありました。
すると、仙台のサポーターが「仙台の分まで、来年度がんばってください」と声をかけてくれたのです。
自分が逆の立場だったら相手のサポーターに対してこういうことが言えただろうか。そんなことを考えると同時に、ベガルタ仙台というチームとそれを支える人々に強く魅力を感じました。

この日の試合は、2-1でベガルタ仙台が勝利しました。かつて磐田に所属していた太田選手が同点ゴールをとったこともあり、自分にとって何か縁のある試合だったように感じられました。
もし、Jリーグを何となく見に行きたいと思っている方がいたら、ベガルタ仙台の試合を見に行くことをおすすめします。選手はもちろん、仙台のサポーターの姿、声は、本当に感動します。

2011年4月22日

movabletypeのブログ記事内の画像の有無で振り分ける条件分岐


movabletypeをCMSとして現在Webサイトを使っているのですが、
サイトをにぎやかに見せるために写真や画像を多く使いたいと思い、エントリーの画像の使用有無で条件分岐をさせるスクリプトを書きました。

スクリーンショット(2011-04-22 17.34.44).png 上記画像のように、ブログ内に写真が使われているときと、使われていないときで、吐き出すhtmlを変化させるかつ、自動的にエントリー内の画像を読み込んで表示させています。

ここで、使用しているのは、以下のようなスクリプトです。
//▼予め、画像を使用しているエントリーに名前をつける変数をセット
<MTSetVarBlock name="img"><MTEntryAssets type="image">photo</MTEntryAssets></MTSetVarBlock>
<$mt:EntryTrackbackData$>
<div class="blog_list_body">
<h3 class="list_title list_h3_info"><a href="<$mt:EntryPermalink$>"><$mt:EntryTitle$></a><$mt:EntryDate format="%x"$></h3>

//▼もしエントリー内で画像を使っていたら以下を読み込み
<mt:If name="img" like="photo">
<MTEntryAssets type="image" lastn="1">//エントリー内の画像で、上から1番目の物を取得する。
//▽<$MTAssetThumbnailURL width="100"$>が、取得した画像のURLパス
<p class="list_photo"><a href="<$MTEntryPermalink$>" title="<$MTEntryTitle$>"><img src="<$MTAssetThumbnailURL width="100"$>" alt="<$MTEntryTitle$>" /></a></p>
<div class="list_photo_summary">
<p><$MTEntryExcerpt$>...</p>
<ul class="list_category">
<mt:IfArchiveTypeEnabled archive_type="Category">
<mt:If tag="EntryCategories">
<li><mt:EntryCategories glue='</li><li>'><a href="<$mt:CategoryArchiveLink$>" rel="tag"><$mt:CategoryLabel$></a></mt:EntryCategories></li>
</mt:If>
</mt:IfArchiveTypeEnabled>
</ul>
</div><!--list_photo_summary-->
</div><!--blog_list_body-->
</MTEntryAssets>
//▲ここまでが、エントリーに画像が使われている場合に読み込むスクリプト

<mt:Else>

//▼エントリー内に画像が使われていない場合は、以下を読み込み
<p><$MTEntryExcerpt$></p>
<ul class="list_category">
<mt:IfArchiveTypeEnabled archive_type="Category">
<mt:If tag="EntryCategories">
<li><mt:EntryCategories glue='</li><li>'><a href="<$mt:CategoryArchiveLink$>" rel="tag"><$mt:CategoryLabel$></a></mt:EntryCategories></li>
</mt:If>
</mt:IfArchiveTypeEnabled>
</ul>
</div><!--blog_list_body-->
//▲ここまでが、エントリーに画像が使われていない場合に読み込むスクリプト
</mt:If>

意外に、すんなりとできました。。。

2011年4月16日

【素材1】かわいくて落ち着くRSSアイコンなど


simple-set.jpg Webサイトを作っているときに、必ずこだわるようにしているのがアイコンを上手に使うということです。
ユーザーが直感的に求める情報にたどり着けるようにするために、とても重要なことだと感じています。

先日、とあるWebサイトのデザインを描く作業で、海外のサイトからとてもかわいいアイコン素材を見つけました。

使う上での注意事項は、以下を参照してください。
(英語の勉強にもなると思います。。。)
Download Icons For Free!
You can use the icons for private and commercial projects, blogs and web-sites for free, without any restrictions whatsoever. However, you are not allowed to sell or redistribute the icons without author's and Smashing Magazine's permission.
素材ダウンロードページより引用

こちらのサイトよりダウンロードして使うことができますよ★

2011年4月14日

第1次審査を通過しました。|第6回JWDA WEBデザインアワード


スクリーンショット(2011-04-14 0.15.54).png 私が昨年メディア局長を務めた学生団体で制作したサイトが、日本WEBデザイナーズ協会の主催する「第6回JWDA WEBデザインアワード」の一般部門の1次審査を通過し53作品の中の1つとしてノミネートされています。

ノミネートされたのは、「フリーペーパーミュージアム」という学生が作るフリーペーパーを紹介するサイトです。

企画・運営フェーズも含めると、大変多くの人がかかわりました。
ICUの茂木君、早稲田大学の宮村君は、サイトリリースの際に貴重な時間を割いて手伝ってくれました。
現在は、AGESTOCK2011実行委員会のメディア局長である鈴木那美子(なみごん)を中心に運営をしてもらっています。

企画・運営では、慶応義塾大学の金子(AgeStock2010実行委員会の副代表)を中心に結成されたチームの皆さんが大変な尽力をしてくれました。金子がいなかったら、このサイトを作ることもなかったと思います。

上記の方々、AgeStockに関わるすべての方々に報告と共に感謝したいと思います。

1次審査通過サイト一覧|一般部門

2011年4月12日

【4】背景画像を常にブラウザサイズぴったりにする。|jQueryを読解する


bg-jq.gif
画像:Full Page Background Image | jQueryより

Webサイトの背景に、大きなサイズの画像を使う際ぶちあたるのは、見る人のブラウザサイズによって背景画像の表示されるサイズをコントロールできないということです。

この問題に対してjQueryを使って解決方法を紹介していた海外のサイトがあったので、紹介したいと思います。

「背景画像を常にブラウザサイズぴったりにする」とは?

はじめに、「背景画像を常にブラウザサイズぴったり...」とはどういうことかを見てみましょう。

こちらのサイトをご覧ください。

リンク先のサイトでは、ブラウザのサイズを変更するとそれに合わせて背景画像の横幅や縦幅が変化します。
以下ではここで使われているjsコードを検証します。

jsコード、CSSはこのようになっています。

▼jsコード
$(function() {
    var theWindow = $(window),
    $bg = $("#bg"),
    aspectRatio = $bg.width() / $bg.height();
 
    function resizeBg() {
        if ( (theWindow.width() / theWindow.height()) < aspectRatio ) {
            $bg
                .removeClass()
                .addClass('bgheight');
        } else {
            $bg
                .removeClass()
                .addClass('bgwidth');
        }
    }
    theWindow.resize(function() {
        resizeBg();
    }).trigger("resize");
});
▼CSS
#bg { position: fixed; top: 0; left: 0; }
.bgwidth { width: 100%; }
.bgheight { height: 100%; }

画像のアスペクト比を割り出すのがポイント

この手法でのポイントは、背景に使われている画像のアスペクト比を割り出し、ブラウザサイズのアスペクト比と比較することで条件分岐を行っている点です。

それにより、クラス属性を振り分けてwidth:100%を適用するか、height:100%を適用するかをコントロールしています。

var theWindow = $(window),
$bg = $("#bg"),
aspectRatio = $bg.width() / $bg.height();

具体的にjsコードを検証します。冒頭には、ここで使う変数などを設定しています。

var theWindow = $(window),は、windowオブジェクトを用いています。
windowオブジェクトについては、以前のエントリーで簡単に説明しました。

$bgという変数にはhtmlコードにて、つけられたid属性「bg」を、
aspectRatioという変数には、id属性bgが付いた画像のアスペクト比を格納しています。

function resizeBg() { }

生成した変数を用いて、ここではresizeBgという機能をまとめています。
その中に書かれている条件分岐が以下です。
 if ( (theWindow.width() / theWindow.height()) < aspectRatio ) {
  ○○
}else{
  △△
}
翻訳すると、もしブラウザの横幅/縦幅が画像のアスペクト比より小さかったら○○をして、そうでないときは△△をする。という意味になります。

○○と△△の仕事について

○○は以下のコードになります。
 $bg.removeClass().addClass('bgheight');
以前にも出てきたjQueryのコードが使われています。
id属性「bg」が付いた画像のクラス属性を除去し、新たに「bgheight」というクラス属性を付与しています。 △△もまったく同じ手法を用いて、「bgwidth」というクラス属性を付与しています。
上記に書いたコードを確認してみてください。
読解を積み重ねてきたお陰で、僕自身、大分jQueryのコードを理解してきました。。。

theWindow.resize(function() { resizeBg(); })

jsコードの最後には、イベントを発生させるタイミングについて記されています。

resize(fn)
各要素のresizeイベントに関数をbindします。
resizeイベントは、windowがサイズ変更された際に呼び出されます。
jQueryのイベントは、コールバック関数の最初の引数でjQuery.Eventオブジェクトを受け取ることができます。このオブジェクトを使って、規定のイベント動作のキャンセルや、バブリングの抑制などを行います。
jQuery日本語リファレンスより引用

ここでは、ブラウザのサイズがユーザーによってリサイズされた時に、resizeBg()という機能を働かせるということが書かれています。

.trigger("resize");とは何のため?!

最後に、.trigger("resize");と書かれています。
しかし、この意味についてはっきり判明することができませんでした。。。
どういう意味なのでしょうか?もし分かる方がいたら教えていただけたらと思います。。。


なんとも中途半端な形になっていしまいましたが、今日もためになることが多い読解でした。。。

2011年4月 9日

jQuery Bubble Popupでおしゃれに登場する吹き出しを作る。


popup.jpg jQuery Bubble Popupを使えば、
カーソルを合わせると、ポップがフワッと登場する機能を実現できます。

今日は、実際にダウンロードするところから、簡単なサンプルを作るところまでをレポートしたいと思います。

jQuery Bubble Popupで、こんなことができます。

jQuery Bubble Popupで何ができるのかを知りたい方は、こちらのサイトをご覧ください。公式のデモページになっています。

<div>要素でくくった部分やテキストリンク、画像など様々な要素に対応していることがわかります。

まずjQuery Bubble Popupをダウンロードします。

jQuery Bubble Popupの最新版は、こちらのページよりダウンロードできます。

pop2.gif
※画像はクリックして拡大することができます。

ページを少し下にスクロールしていくと、上記画像のような箇所があるので、画像内の赤枠部分をクリックしてプラグインをダウンロードしてください。

ダウンロードしたファイルの構成は下記画像のようになっています。

popup3.gif
※画像はクリックして拡大することができます。

画像の中で赤線を引いたファイルやフォルダは必須になります。
jquerybubblepopup-themeフォルダの中には、ポップに使われる画像が入っています。

htmlファイルを使って実装してみる。

では、htmlファイルをコーディングしてプラグインを使ってみます。
新たに任意の名前のフォルダ(ここでは「20110409」という名のフォルダ)を制作し、index.htmlファイルを作成。
その中に下記の画像のような構成でダウンロードしたファイル達を入れます。
popup4.gif
※画像はクリックして拡大することができます。

作成したindex.htmlファイルには、ひとまず初期状態として以下のスクリプトを記述しました。
<!DOCTYPE HTML>
<html>
<head>
<title>jQuery Bubble Popupを使ってみる。</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<!--▼CSSを読み込む-->
<link href="css/jquery.bubblepopup.v2.3.1.css" rel="stylesheet" type="text/css" />
<!--▼jqueryを読み込む-->
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" type="text/javascript"></script>
<!--▼jQuerybubblepopupプラグインを読み込む-->
<script src="js/jquery.bubblepopup.v2.3.1.min.js" type="text/javascript"></script>
</head>
<body>
</body>
</html>
サイトからダウンロードした各ファイルを、しっかり読み込むパスを書くように注意してください。

簡単なテキストにポップを登場させることにする

では、先ほど準備したhtmlファイルに記述を加えて、簡単なテキスト上にポップを登場させるようにします。
<body>タグ内を以下のようにします。
<body>
<h1>jQuery Bubble Popupを使ってみる。</h1>
<div class="button" style="margin:100px;">
	<p style="text-align:center;">これは<div>タグ内のテキストです。</p>
<!--/#test1--></div>
</body>
この記述を加えたファイルをブラウザで開いてみると、下記の画像のようになるはずです。
popup5.gif
※画像はクリックして拡大することができます。

javascriptを記述する

先ほどのhtmlのdivタグにカーソルを合わせるとポップが出る仕組みを作るために、残された作業はjavascriptを書くことだけです。
これまで記述を加えてきたindex.htmlの</head>直前に、以下のjavascriptを挿入します。
<script type="text/javascript">
<!--
$(document).ready(function(){

		//$()の中には、ポップを表示させたい要素のID属性、クラス、タグ名を記述します。
		$('.button').CreateBubblePopup({
			//▼上からポップを落とす。
			position : 'top',
			//▼要素の真ん中にポップが来るようにする。
			align	 : 'center',
			//▼ポップ内テキストを設定する。
			innerHtml: 'フワッとポップが<br />出てくることに成功しました!!',
			//▼ポップ内のスタイル属性を設定する。
			innerHtmlStyle: {
				color:'#FFFFFF', 
				'text-align':'center'
			},
			//▼ポップの色を決める。※jquerybubblepopup-themeフォルダ参照
			themeName: 	'all-black',
			//▼jquerybubblepopup-themeフォルダの相対パスを記述する。
			themePath: 	'images/jquerybubblepopup-theme'
		});
});
//-->
</script>
スクリプトのそれぞれの箇所の意味はできるだけ記載したので、参考にしてもらえたらと思います。
値を変えれば、簡単にカスタマイズできるので、ぜひチャレンジしてみてください。

完成!!

この結果できたのが以下のサンプルになります。
popup6.gif
※画像をクリックするとサンプルページへ移動します。

ポップの部品も自作してすぐに導入が可能だと思います。
ダウンロードしたファイルの中にexampleフォルダがありますので、今回の簡単な導入方法をベースに様々な使い方を試せば素晴らしいサイトが作れると思います!

2011年4月 7日

【イベント4/26】AGESTOCK2011 ~Spring Festival~


agestock2011_logo.jpg
僕が所属していた団体の後輩たちが、
新たな春を迎えた大学生のためにイベントを開催します!!

「AGESTOCK2011 ~Spring Festival~」


後輩にエールを送ると共に、このイベントについて告知したいと思います!!

テーマは『輝く星』

このイベントのテーマは『輝く星』。

特に新たな道を歩みだした大学1年生は、4年後"輝く星"のようになりたいと期待に胸を躍らせていることだと思います。

そのためのヒントが、このイベントで見つけられると思いますよ★


新しい季節がやってくる。

新しい生活が始まる。


いつかああしたい。いつかああなりたい。
思っているだけじゃ始まらない...

いつかが過去になる前に。

今しかない!


『いつかが"今"に』


ダンス、男子チアリーディング、ビッグバンドなどに熱中していて
輝いている学生たちを見て、体感して、ここであなたも何か見つけていきませんか?


イベント公式告知文より引用

"すごい"学生パフォーマーが大集結!!


「こんな大学生がいるのか...!?」


そう思わせてくれる、"すごい"学生パフォーマーを見ることができます。

画像:イベント公式サイトより転載

僕が所属していた時にも圧巻のパフォーマンスを見せてくれた、
「早稲田大学男子チアリーディングチームSHOCKERS」や「上智大学G-Splash」、「Juggler Senjyu」なども出演します。
その他にも、楽しみなパフォーマーがたくさん出ますので、期待大です!

スペシャルアーティストも登場!!

ドラマやCMソングでおなじみのMiChi、昨年の学園祭KINGダイスケがゲストで登場します!

プロのアーティストの歌声を間近で聞けるチャンスですね★

なんとチケットはWebで予約できる!

このイベントに行きたい!って方は、イベント公式サイトより予約することができます。

渋谷のO-EASTで行われるので、学校帰り、仕事帰りの方も来やすいと思います。
僕ももちろん行きます★

スクリーンショット(2011-04-07 22.59.10).png
画像:イベント公式サイトキャプチャ

イベント概要

AGESTOCK2011~Spring Festival~


テーマ:輝く星

日時:4月26日(火)
場所:渋谷O-EAST
開場:17:30
開演:18:30

*Ticket*
一般 ¥2500
新入生 ¥2000
※別途ドリンク代¥500が必要です。

詳細はAGESTOCK2011~Spring Festival~公式サイトで随時更新中!
http://goo.gl/GV97L

主催:AGESTOCK2011実行委員会
http://goo.gl/nM0At



AGESTOCK2011実行委員会の皆さんは、新歓活動もあり多忙な毎日を送っていると思います。
パフォーマーやアーティスト、そして観客の方々が、最高に輝く空間を目指してラストスパート、頑張ってください!

楽しみにしています★

【3】画像をフェードインで読み込ませる|jQueryを読解する


画像がふわっとおしゃれに登場するサイトを良く見かけます。
今日はそんなことを実現するjQueryのスクリプトを読解してみます。

Webクリエイターボックスより引用
$(function () {
     $('.imgBox img').hide();
});
 
var i = 0;
var int=0;
$(window).bind("load", function() {
     var int = setInterval("doThis(i)",500);
});
 
function doThis() {
     var images = $('img').length;
     if (i >= images) {
          clearInterval(int);
    }
    $('img:hidden').eq(0).fadeIn(500);
    i++;
}

$('.imgBox img').hide();

.imgBoxとは、予めHTML側に設定したクラス属性です。
jQueryを使って、.imgBoxクラスがつけられたタグ内の、<img>タグに、hide()という仕事を付与しています。
.hide()
各要素のうち、表示状態にあるものを非表示にします。
hide(speed, [callback])と同じ動作ですが、アニメーションが無く即座に非表示になります。要素が既に非表示になっている場合は、何も起こりません。
jQuery日本語リファレンスより引用

つまり、.imgBoxクラスがつけられたタグ内のimg(画像)を非表示にしているのです。

var i = 0; var int=0;

共に初期値を0として、iintという変数を生成しています。

$(window).bind("load", function() { });

ここでは、windowオブジェクトが登場します。
windowオブジェクト
windowオブジェクトは、JavaScriptのオブジェクト階層の最上位に位置し、画面上に表示されているすべてのオブジェクトの親となるオブジェクトです。
ここでは、windowオブジェクトに.bind("load" ,function(){ △△ });という仕事を付与することでページコンテンツが全てロードされたら△△という仕事を作動するということが書かれています。

var int = setInterval("doThis(i)",500);

ページコンテンツが全てロードされたら作動させる仕事内容です。
setInterval(○○,△△);とは、△△ミリ秒間隔ごとに○○という仕事を実行するという意味で、
ここでは、0.5秒でdoThis(i)という仕事を実行するということが書かれています。

doThis(i)という仕事については、下記の部分に書かれています。
function doThis() {
     var images = $('img').length;
     if (i >= images) {
          clearInterval(int);
    }
    $('img:hidden').eq(0).fadeIn(500);
    i++;
}

var images = $('img').length;

imagesという名前の変数を生成しています。.lengthは以前も出てきましたが、いわゆる...の数を格納させたい時に使うメソッドです。<img>タグの数(=画像の枚数)をimagesという変数に格納しています。

if (i >= images) {
clearInterval(int);
}

ざっくり説明すると、すべての画像のロードが完了したら var int = setInterval("doThis(i)",500);で設定したintの変数に組まれた仕事を停止するということが書かれています。
ここは、もう少し上手く説明できるように僕も理解度を深めなくてはいけませんね。。。

$('img:hidden').eq(0).fadeIn(500);

img:hiddenとは、隠されている(非表示状態の)<img>タグを指します。
.eqとは、抽出をするための記述で、.fadeIn(500)をつけることで、
非表示の画像を抽出し、0.5秒のスピードで表示させることを実現しています。

i++;

そして、最後に、画像を上から(プログラム的な意味で)順番にふわっと表示させるためにi変数の値を処理が終わるごとに増やしていきます。


まだまだ、理解度が低いために常にリファレンスなどに立ち返りながらの読解になってしまいました。。。

2011年4月 5日

牛乳とカップヌードルカレー味を混ぜてみた。


このブログのコンセプトからは大きく逸脱しますが、

「何としてでも伝えたい。」

と思ったので、料理のことを書きます。

材料

IMG_2289.JPG
1.カップヌードルカレー味
2.牛乳(300cc)

【1】牛乳を沸騰させる。

IMG_2290.JPG 鍋で牛乳を沸騰させます。300ccがちょうどよい量です。

【2】沸騰した牛乳をカップ麺の中に入れて3分待つ。

お湯でカップヌードルを作る時となんら変わることなく、ただ3分待ちます。

完成。
完成写真はあえて掲載しませんが、美味しいですよ。。。w

高校時代の懐かしいユニフォームを描いてみた。


北高バージョンピグ制作画面.png またしてもアメーバピグですが、次はピグの着る衣装を描いてみました。
ちなみに、着ている衣装は高校時代にサッカー部として着ていたユニフォームです。

アメーバピグ2-01.jpg 現在は、違うデザインのものが使われているようですが、3年間青春を共にしたこのユニフォームは今でも部屋に飾ってあります。

アメーバピグ上のアイテムなどを対象としたデザインコンテストもあるようなので、次回開催されたら、ガチでがんばります。。。

※上記のピグデザインは、個人の趣味でデザインしたものであり、
アメーバピグ上に実際にあるものではありません。

2011年4月 4日

【2】就活で見かけるあの機能|jQueryを読解する


スクリーンショット(2011-04-04 13.42.22).png 就職活動をしていると、Webフォームを使ってESを提出。。。ってことがよくあると思います。
文量も指定されるので、フォーム下のカウンターを見ながら、文字数が多すぎたり、少なすぎたりで格闘しますよね汗
ということで、今日はそんな文字数カウンターの仕組みを読み解きたいと思います。

Webクリエイターボックスより引用
$(function () {
     $("textarea").keyup(function(){
          var counter = $(this).val().length;
        $("#countUp").text(counter);
        if(counter == 0){
            $("#countUp").text("0");
        }
        if(counter >= 10){
            $("#countUp").css("color","red");
        } else{$("#countUp").css("color","#666");}
    });
});

$("textarea").keyup();

<textarea>タグに.keyup()というイベントが付与されています。
keyupイベントは、キーボードのキーが押され、上がった際に( )内のイベントを実行するというものです。
keyupイベントの内容は、( )内にfunction()としてまとめられています。

var counter = $(this).val().length;

counterという名前の関数(var)を生成しています。
イコールで結ばれた右式は、<textarea>タグ内に入力された文字列の長さという意味であり、counterという関数にはtextareaに入力した文字数が格納されます。
.val()プロパティは、value属性を返すものです。
textareaに入力された文字は、<textarea>タグのvalue属性として格納されているので、val()を使っています。

$("#countUp").text(counter);

id属性に[countUp]がついたタグで挟まれたテキストをコントロールするコードです。
.text( )内に、先ほど生成した、textareaに入力した文字数を格納する関数counterを入れることで、入力した文字数に応じて、表示される文字も変化するように設定しています。

if(counter == 0){$("#countUp").text("0");}

ここからは、条件分岐が書かれています。ここでは、文字数がある一定以上の文字になったら、入力フォームの下にある文字数カウンターの色が赤色になるように、設定されています。
デフォルト(何も文字が入力されていない状態)では、当然表示文字は「0」であるため、
if文を使って、もしcounter関数(入力された文字数)が0ならば、「0」をテキストに設置と書かれています。

if(counter >= 10){
  $("#countUp").css("color","red");
} else{$("#countUp").css("color","#666");}

if(counter >= 10){}の意味は、もし入力された文字数が10以上になったらという意味です。
if(){ }内に書かれたプログラムは、文字数が10文字以上になったときに実行されます。
if{}に続いて、else{ }とありますが、elseは「そうでなかったら」という意味です。
つまり、「文字数が10文字未満だったら」という意味で、その場合にelse{ }の中に書かれたプログラムが実行されることになります。

$("#countUp").css("color","red");

これが、条件別で実行されるプログラムです。
ID属性「#countUp」がつけられたタグのcolorプロパティをredにするという意味です。
.css("プロパティ名","プロパティ値")が使われています。
else{}内には、$("#countUp").css("color","#666");がつけられていますが、もう説明するまでもないでしょう。

非常に簡単なプログラムですが、学ぶべきことがたくさん詰まっていました。。。

2011年4月 3日

【1】jQueryを読解する


jQueryへの理解をしっかりと定着させるため、人気のあるjQueryを使った技を読み解きたいと思います。
今日読み込むのは、以下のコードです。
Webクリエイターボックスより引用
$(function(){
     $("a[href^='http://']").attr("target","_blank");
});
http:// で始まるリンク先を、自動的に別ウィンドウで表示させるようにするスクリプトです。

$(function(){ });

基本中の基本ですが、jQueryを使うときに必ず見る$(function(){ });とは、何なのでしょうか?
$(function(){ }) の中身は、HTMLドキュメントの準備が出来た段階で実行されます。昔のjQueryでは、このような表現はなく、ready() メソッドを使っていたそうです。
$(document).ready(function(){ });と同義であり、読み込んだら即実行させることのできる、手軽で便利な書き方なのです。

$("a[href^='http://']").attr("target","_blank");

では、読み込んだら即実行させる内容を読解します。

$(○○○○).□□(△△);という構文は、
○○○○に、△△という属性(クラスなど)を□□する。という意味です。

ここでは、
<a>タグで、hrefによるリンク指定がhttp://から始まるもの(外部リンク)
に、
target="_blank"(別ウィンドウでリンクを表示)という属性
を、
追加する
という意味になります。

タグ名[属性 = 'value']とすることで、実行するタグの属性を絞り込むことができます。
絞り方も以下のように、色々あります。
  1. 「^= 'value'」'value'から文字列が始まる場合
  2. 「$= 'value'」'value'という文字列で終わる場合
  3. 「*= 'value'」'value'という文字列を含む場合
  4. 「!= 'value'」'value'という文字列を含んでいない場合

.attr("target","_blank")

jQueryの日本語リファレンスによると、
attr(key,value)
属性の名前(key)に属性の値(value)を渡して、指定した要素に属性を設定する。
とあります。
.attrの()内の書き方で、意味も少し変わってくるので、よく理解しなくてはいけませんね。。。

2011年4月 2日

Arrayオブジェクトのメンバについて


前回のように、次はArrayオブジェクトのメンバを確認します。

加工系

concat(ary)メンバ
var ary1 = ['gyoten','yokoi','hakamata','suzuki'];
var ary2 = ['akito','hayato','shunsuke','narito'];
//▼gyoten,yokoi,hakamata,suzuki,akito,hayato,shunsuke,narito
document.writeln(ary1.concat(ary2));//配列をつなげる
join(del)メンバ
var ary1 = ['gyoten','yokoi','hakamata','suzuki'];
//▼gyoten/yokoi/hakamata/suzuki,
document.writeln(ary1.join(/));//配列を指定した文字列でつなげる
slice(start,end)メンバ
var ary1 = ['gyoten','yokoi','hakamata','suzuki'];
//▼gyoten,yokoi,hakamata
document.writeln(ary1.slice(0,2));//start〜end番目の配列要素を抜き出す
splice(start,cnt[,rep[,...]])メンバ
var ary1 = ['gyoten','yokoi','hakamata','suzuki'];
document.writeln(ary1.splice(0,1,wakazawa,arasawa));//ary1の0番目、1番目の配列が置き換わる。
//▼wakazawa,arasawa,hakamata,suzuki
document.writeln(ary1);

追加/削除系

pop()メンバ
var ary1 = ['gyoten','yokoi','hakamata','suzuki'];
//▼suzukiを削除
document.writeln(ary1.pop());//配列の末尾の要素を削除する
push()メンバ
var ary1 = ['gyoten','yokoi','hakamata','suzuki'];
//▼wakazawaを追加
document.writeln(ary1.push('wakazawa'));//配列の末尾に要素を追加する
shift()メンバ
var ary1 = ['gyoten','yokoi','hakamata','suzuki'];
//▼gyotenを削除
document.writeln(ary1.shift());//配列の先頭の要素を削除する
unshift(data1,data2,...)メンバ
var ary1 = ['gyoten','yokoi','hakamata','suzuki'];
//▼wakazawa,arasawaを追加
document.writeln(ary1.unshift('wakazawa','arasawa'));//配列の先頭に要素を追加する

並び替え系

reverse()メンバ
var ary1 = ['gyoten','yokoi','hakamata','suzuki'];
//▼suzuki,hakamata,yokoi,gyoten
document.writeln(ary1.reverse());//配列を逆順に並び替える
sort(fnc)メンバ
var ary1 = ['gyoten','yokoi','hakamata','suzuki'];
//▼gyoten,hakamata,suzuki,yokoi
document.writeln(ary1.sort());//配列を昇順に並び替える

その他系

lengthメンバ
var ary1 = ['gyoten','yokoi','hakamata','suzuki'];
//▼4
document.writeln(ary1.length);//配列の数を出力する
toString()メンバ
var ary1 = ['gyoten','yokoi','hakamata','suzuki'];
//▼gyoten,yokoi,hakamata,suzuki
document.writeln(ary1.toString());//配列を文字列で出力する

Stringオブジェクトの文字装飾メンバについて


基本データである文字列を扱うオブジェクト、Stringオブジェクトの文字装飾系のメンバを確認します。

anchor(name)メンバ
var str = 'はかしゅんどっとネット';
//▼<a name="top">ページ上部へ</a>
document.writeln('ページ上部へ'.anchor('top'));
link(url)メンバ
var str = 'はかしゅんどっとネット';
//▼<a href="http://hakashun.net/">はかしゅんどっとネット</a>
document.writeln(str.link('http://hakashun.net/'));
sub()メンバ
var str = 'はかしゅんどっとネット';
//▼<sub>はかしゅんどっとネット</sub>
document.writeln(str.sub());
sup()メンバ
var str = 'はかしゅんどっとネット';
//▼<sup>はかしゅんどっとネット</sup>
document.writeln(str.sup());
OpenID対応しています OpenIDについて

このアーカイブについて

このページには、2011年4月に書かれたブログ記事が新しい順に公開されています。

前のアーカイブは2011年3月です。

次のアーカイブは2011年5月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。