ウェブDeBLOG | トライデントコンピュータ専門学校 Webデザイン学科

トライデントWebデザイン学科の最新情報を紹介しています。学生へのインタビュー記事から学生作品の解説、Webデザイン・マークアップ・プログラミングの授業風景、プロジェクト発表会、名古屋のWeb制作会社情報、イベント参加レポートやWeb制作の技術解説記事などWeb制作に関連する記事を掲載しています。トライデントコンピュータ専門学校は、いま話題の名古屋駅から地下街を歩いて3分です。 

2012.11.25 [日] JSクリニックに参加してきました。

書くのが遅くなってしまいましたが、ベースキャンプ名古屋で行われた張山さん主催の「JSクリニック vol.1」に参加してきました。参加者がJavaScriptを使用した案件でのお悩みなどを、ドクターハリーさんが解説してくれるという勉強会です。

今回は、マウスオーバーなどもできる画像を使ったチェックボックスを診断してもらいました。
自分で検索で探してきたプラグインを使用して制作をしたのですが、Internet EXPlorerでは、<label>の子要素に画像を入れられないので、それを回避しようとしてあるのですが、Internet EXPlorer9だとダブルクリックしか反応しないという怪現象が起きます。
「[jQuery]個別の画像をラジオボタンやチェックボックスにするプラグイン」RuputerFan

さらに、それを回避するためにIE9以上の場合のみ変更のスクリプトを記入しました。
$(function () {
if ($.browser.msie && $.browser.version > 8) {
$('label > img').click(function () {
$('#'+$(this).parent().attr('for') ).focus().click();
});
}
});

回避の回避でちょっと嫌な感じだったので「もっとわかりやすいプログラム」にしたいというのが希望でした。解説していただいた内容を、復習のため自分で再度作り直してみたので、忘備録として書いておきます。

まず、htmlはlabelを使用せずpで画像をマークアップします。checkboxも使いません。
<div id="mainArea">
<p>東海三県の画像をクリックして送信</p>
<p><img id="aichiButton" style="cursor:pointer" class="hover" src="image/aichi.gif" width="189" height="165" alt="愛知県"></p>
<p><img id="gifuButton" style="cursor:pointer" class="hover" src="image/gifu.gif" width="221" height="257" alt="岐阜県"></p>
<p><img id="mieButton" style="cursor:pointer" class="hover" src="image/mie.gif" width="186" height="296" alt="三重県"></p>
<form action="http://trident-com.net/~kawahide/tokai/tokai.php" method="get" name="form1">
<input type="hidden" name="aichi" id="aichi" value="">
<input type="hidden" name="gifu" id="gifu" value="">
<input type="hidden" name="mie" id="mie" value="">
<input type="submit" value="送信">
</form>
<!--/mainArea--></div>

CSSは各ボタンの位置をpositionで配置してあります。
div#mainArea p img{position:absolute;
}
#aichiButton{left: 140px;
  top: 251px;
  z-index: 3;
}
#gifuButton{left: 80px;
 top: 50px;
 z-index: 2;
}
#mieButton{left: 1px;
 top: 282px;
 z-index: 1;
}
div#mainArea form{position:absolute;
  left: 200px;
  top: 550px;
}

見た目の処理と値を送る処理を別にします。まずはhover(マウスを乗せると画像が切り替わる)の処理です。
jQuery(function($) {
// Initialization
$.lm = {
init: function() {
for (func in $.lm) {
if ($.lm[func].init)
$.lm[func].init();
}
}
};

// Image hover
$.lm.hover = {
init: function() {
$('.hover')
.live('mouseover', this.enter)
.live('mouseout', this.exit)
.live('focus', this.enter)
.live('blur', this.exit)
.each(this.preload);
},

preload: function() {
this.preloaded = new Image; //Imageクラスを使用して HTMLImageElement を作成
this.preloaded.src = this.src.replace(/^(.+)(\.[a-z]+)$/, "$1_o$2");
},

enter: function() {
if (!this.src.match(/^(.+)_o(\.[a-z]+)$/) && !this.src.match(/^(.+)_a(\.[a-z]+)$/)){
this.src = this.src.replace(/^(.+)(\.[a-z]+)$/, "$1_o$2");
}
},

exit: function() {
if (this.src.match(/^(.+)_o(\.[a-z]+)$/)){
this.src = this.src.replace(/^(.+)_o(\.[a-z]+)$/, "$1$2");
} else {
this.src = this.src.replace(/^(.+)_a(\.[a-z]+)$/, "$1$2");
}
}
};

/* onload ***********************************************/
$.lm.init();

});

画像イメージについて(HTMLImageElement)は、JavaScript プログラミング講座
カプセル化 については、jQueryをmootoolsなどの他のライブラリと干渉しないようにする方法まとめ(5509)
正規表現に関しては、
「webデザイナのタメのかんたん正規表現。jQueryでの使い方と読み方」(がんばるデザイナ tuts!php,html5,photoshopとかがんばってみる)
にわかりやすく解説されています(感動!!)。

次にクリックされた値をvalueに当てはめます。
var img = new Image();
img.src = "img/aichi_s.gif";

jQuery(function($){
// 初期化
$("#aichi").val(""); //id="aichi"のvalueを無しにする
$("#aichiButton").click(changeCheckbox); //clickした時に関数changeCheckboxを動かす
$("#gifu").val("");
$("#gifuButton").click(changeCheckbox);
$("#mie").val("");
$("#mieButton").click(changeCheckbox);

function changeCheckbox(){
var id = $(this).attr("id").replace("Button", ""); //変数idは.attrでクリックしたオブジェクトのidを取得し.replaceでButtonを消したもの
var province = $(this).attr("alt"); //変数provinceはクリックしたimgのaltを取得したもの
if($("#" + id).val() == ""){ //valueの値が無しだったら
$(this).removeClass("hover"); //まずマウスオーバー処理を止める
if($(this).attr("src").indexOf("_o.gif") != -1){ //hover画像であれば
$(this).attr("src", $(this).attr("src").replace(/^(.+)_o(\.[a-z]+)$/, "$1_s$2")); //select画像に入れ替える※正規表現
} else { //通常画像であっても
$(this).attr("src", $(this).attr("src").replace(/^(.+)(\.[a-z]+)$/, "$1_s$2")); //select画像に入れ替える※正規表現
}
$("#" + id).val(province); //そしてvalueに変数provinceで取得した県名を入れる
} else { //何らかの原因でvalueの値が入っていたら
$(this).attr("src", $(this).attr("src").replace(/^(.+)_s(\.[a-z]+)$/, "$1$2")); //通常画像にして ※正規表現
$(this).addClass("hover"); //後からマウスオーバー処理を止める
$("#" + id).val(""); //valueの値を無しにする
}
}
});

実際の動きは→ここ

いろいろと調べてコメントの記入をしていたら、ちょっと見づらくなってしまいましたが、コードとしてはわかりやすくなりました。張山さん、クリニック後のフォローもしていただいて、ありがとうございました。2回目も楽しみにしています!
コードの表示に「HIGHLIGHT.JS」を適用させていたら結構時間がかかってしまいました(言い訳)
関連記事
Comment







(編集・削除用)


管理者にだけ表示を許可
Trackback
http://tridentwebdesign.blog.fc2.com/tb.php/363-ac80b5e5
検索フォーム
熊本地震 支援・募金まとめ
募集イベントバナー(1年生制作)
BananaAd Banner
プロフィール

担当:Webデザイン学科+

名古屋駅から歩いて6分、トライデントコンピュータ専門学校のWebデザイン学科を紹介します。

トライデントロゴ

質問などはLINEでどうぞ。

友だち追加数
Webデザイン学科実績
<プレゼン>
WCAN 2016 Springに参加してきました。
WCAN 2015 Winterに参加しました。
建設業入職者増加プロジェクトの発表会に参加
WCAN 2015 Summerに参加してきました。
WCAN 2013 Winterに参加
WCAN(秋)に参加しました。
無事、発表が終わりました【WordFes Nagoya 2013】
WCAN 2013 Summerに参加してきました。
WCAN 2011 Winter LT&LOGO
学生がライトニングトークで話しました。
<展示会>
1年生進級展「お母さんの2度見展」を開催中です。
「うぇ~~~~~~~ぶ2016」終了しました。ご来場ありがとうございました!
「うぇ〜〜〜〜〜ぶ!!」終了。ご来場ありがとうございました!
<コンテスト>
NCF2014(スマホアプリ開発テーマ2) 準グランプリ獲得!
最優秀賞!HTML5スマートアプリ&クリエイティブコンテスト
NCF2013グランプリ受賞!!!
<Webサイト制作>
建設業入職者増加プロジェクト発表会
Webサイト制作発表会2014
99eagle Webサイトリニューアル公開
99eagle Webサイト公開
「Bloom*Block」Webサイト公開
セントレア「日本の四季 キルト展」Webサイト公開
かっぱ商店街サイト制作
ココストア共同企画「アサココ!」公開
<技能五輪全国大会>
第53回技能五輪全国大会(ウェブデザイン職種)その3
第52回技能五輪全国大会が開催されました。
銀メダル・銅メダル獲得【第51回技能五輪全国大会】
第49回技能五輪全国大会結果発表 敢闘賞受賞
第48回技能五輪全国大会結果発表(銀賞・敢闘賞受賞)
第47回技能五輪閉会式 & 結果発表
第46回技能五輪
<若年者ものづくり競技大会>
第11回若年者ものづくり競技大会 2日目&結果
第9回若年者ものづくり競技大会2日目(競技日)
第8回若年者ものづくり競技大会2日目
第7回若年者ものづくり大会
第6回若年者ものづくり大会2日目
第5回若年者ものづくり大会
第4回若年者ものづくり競技大会閉会式
Instagram
学生ブログリンク
<1年生ブログ>

WF1でBLOG 2017

<Webデザイン学科2年生ブログ>
タグリスト 改

トライデントコンピュータ専門学校Webデザイン学科WCAN業界研究技能五輪ウェブデザイン職種ウェブデザイン若年者ものづくり競技大会2013名古屋ポートフォリオECCコンピュータ専門学校2009WinterWebサイト学生ブログWordPressJavaScript映画Webデザイン2011Webサイト制作礒田優かっぱ商店街Wordpress入学式技能五輪全国大会卒業制作展ライトニングトークa-blogcms2014矢野りんNagoya面白法人カヤックCGイラスト学科Webテンプレート作成ホームページ・ビルダー瀬川大勝若年者ものづくり大会石黒雄介SummerオープンキャンパスAutumnAdobe杉本拓也IIJGIOhtml52010in大阪HCDアクセス解析第48回技能五輪全国大会1年生進級展2012ココストア東京研修名古屋駅アクアリングFlashmini2015あいちカレーラーメンコンテストウェブデザイン技能競技会Web制作会社体験入学Japangifアニメ愛知県専門学校水野裕太BananaAd田中睦翔合同企業展CentOSセントレアプロジェクトSpringラーメン99eagle企業訪問上村水月卒展卒業制作プレゼンテーション情報デザイン成田篤紀ブログパーツ情報デザインフォーラムウェブデザイン技能検定マール人間中心設計学生CSS3WebワークショップGoogleHTML55T(ファイヴティー)アサココ!CalendarディプロスAdvent導入授業MarkupjQueryレイアウト名古屋開府400年祭F-site豊田市美術館WordFes作品集WordCamp情報デザイン基礎form要素2008Webデザインギャラリーたこ焼きlabel要素fieldset要素textarea要素input要素legend要素ForumUXStoreスマートフォンBox和みAppleグループ制作鷹野雅弘CSS企業課題DTPWORLDアンティー・ファクトリー写真トライデント合同企業展笈瀬本通りAnalyticsカメラワークショップ結果発表産学協同モンキーワークスCSSNiteイラストマップ知多みるくoption要素ナゴヤドーム戸田芳裕WEBサイト制作者のためのHCDの理解in名古屋トライデント名商連ウェブデザイン技能競技大会堀尾真衣iPhoneFICCCMSカリキュラムSEOjbstyle中日ドラゴンズ岩手県塚本碧真鍋大度静岡ポートフォリオサイト卒業式メ~テレビジュアルエディタ会社訪問名古屋市科学館空気人形阿部淳也コミュニケーションデザインワークショップLike就職活動1年生作品展閉館日particlecanvasサーティファイ林田実樹Runstant初期設定佐藤歩熊谷佳紀学生インタビュースマホアプリ長屋めぐみうぇーぶoutput要素Webクリエイター能力認定試験謹賀新年まぼろしselect要素幕張メッセ坂本貴史ゆるキャラ津田直明閉会式デュエル・マスターズFlash-GameswonderfldotFes制作実績ブランディング映画のオープニングKyotoHCDプロセス長谷川恭久ロゴ公募FITC教育勉強会2016#infoeduコピーライティングCREAMAutumin小野裕子マークアップ演習スーパーエレメンツ原一浩山崎デザイン事務所ごはんとFlashマクロマリオネットYahoo!アニメーションMozoramaAO入試escalatoranimation第4回アックゼロヨン・アワードCG・イラストコンテストモーション演習後期プログラムクイズ今井佳子アイディグラフィックス学生参加グラフィックデザインCodePen入賞ガンダム河地芳明LPO世界のCMフェスティバルITホワイトボックスPHP勉強会イラストコンテストJAPANインターネットクリエイティブアワードカラーストリートビューIA/UXプラクティス大富豪スコアシート東京ゲームショウ2009沼田啓助UNIQLOCKギレン総帥ナゴヤデザインウィーク2009カークスヴィル人喰いの大鷲トリコ是枝裕和監督平野秀幸おかだよういち求人新世界道頓堀大沢たかおネスカフェゴールドブレンドフナ犬ウェブアートデザイナーレスポンシブWebデザイン職業実践専門課程出席率WCAN46学位専門士TAFF武豊アニメーションフェスティバルナゴヤ武将都市名古屋おもてなし武将隊ポートピア名古屋プロ野球WEBサイト制作者のためのHCDの理解技能五輪予選平野健太郎プロトコル分析伊藤頼子IAYORKE.ビジュアルデベロップメントunoplusバイドゥ仕事ワイヤーフレームうぇ~~~~~~~ぶ知多半島UI松坂屋美術館スタジオジブリ・レイアウト展合同制作合宿福みつ横浜デジタルアーツ専門学校3校合同発表会クリ博就職フェスタ日本電子専門学校鎌倉箱根合宿森川眞行会社見学ペルソナ&シナリオ法浅野智ペルソナ/シナリオ法情報デザイン教育勉強会ウェブDeBLOG坂本邦夫CMS特集WebデザイナーWebプログラマー横浜中華街新横浜ラーメン博物館Web制作のおしごとIA2010キックオフセミナー夢プロジェクト2009・成果報告会懇親会合宿餃子浜松合同制作ウェブリテラシー協会第一回セミナーWebディレクターAndNIKE慶華飯店ThenThereSalsaWasヨウイチ富岡聡PHP芸大美大デザイナーのためのプログラミング入門水野怜美料理株式会社LIGMAXNodeListHTMLCollection鳥取VideopuppetryASIA鳥取砂丘デザイン愛知県美術館アンドリュー・ワイエスFLASHFLEX醐りょうCS4サムライDesignデッサン造形基礎WebリテラシーTEXTURE中村勇吾ドラマNightCollegeInstagramインスタグラム佐藤可士和SakaeSIGGRAPHappendChild()デザインコンテスト01CONTESTHPデザイン制作合宿ECMAScriptES6ES2015THEWEBProxyカンファレンス学校ウェブデザイン部門WCAN2017SpringSyntaxHighlighterv4.0.1ライデントコンピュータ専門学校お母さんの二度見展デザインのへそ進級展HelveticaWebDirectionEast'082008WinterWebプログラミング初級講座マイクロソフトXRAYSagmeisterStefan丹下紘希学習茂森仙直NamArtlessW+KTokyo(+CRUZ)QubibiHTML+CSS基礎ActionScript基礎カスタマイズセミナークイズIndependence駅麺通り涼麺黒い太陽ウルトラ展ヤノベケンジDay:Resurgence荒俣宏タカガールサイトファルコム音楽フリー宣言UNIQLOCALENDARプラネタリアン水曜日のカンパネラjsdo.itライブペイントサーバー学科JSFiddleカナバングラフィックスウサビッチソバットシアターコマ撮りアニメ電信柱エレミの恋Plunker旭食品サンプル製作所西田幸司国家検定インターネットスキル認定普及協会ヱヴァンゲリヲン新劇場版:破ActionScript食品サンプルCodeply音楽ゲームVIIFANTASYFINALADVENTCHILDREN学園祭再進学COMPLETEアートアニメーション武豊町驛麺通りいな世プレゼン演習西村真里子WCAN×CSSNiteTAFF'09広告批評情報系MonacaジムナストコロンセキュリティGENOウィルスデコクレ山村浩二日本ファルコム□□□switch日清食品グループワークスコーポレーション「ヤノベケンジ-ウルトラ」展Labuat学生作品集TokyoUTZOOMBlogサイバーエージェント沖縄JSBinシナリオそこにいない。展PARTYPerfumeあいちトリエンナーレ2013HighlighterWebデザイン演習CrayonSyntaxbyinspiredThree.js木下健太郎森田霞プレゼンたにぐちまことRhizomatiks田代豊第51回技能五輪全国大会2015年度NEXT高橋雅人カレーラーメンCOMMUNICATIONAWARDスマートフォンサイトUI図鑑美術大学芸術大学麺やOK麺屋ココイチ嵐が如くWF1でBLOG新入生晴れやかさかなやフジ家55インターンシップ就職東京Facebookページ竹中民男八木智章SVGIllustrator第50回結果長野ベースキャンプ名古屋Scrollmagic第7回若年者ものづくり競技大会ScrollMagicVelocity.js東京ゲームショウ2012TOKYOSHOWGAMEJQuery張山大祐モリサワFacebookたこ焼きパーティウェブアクセシビリティみんなのICT佐藤ねじマークアップエンジニアWeb制作合宿アップルップルYahoo!JapanMuse画像をチェックボタンにする夏麺フェア飯田淳介木村哲朗フロントエンドエンジニアNCF2013NTTドコモ東海支社スパルタキャンプ岩出本店丸田屋柏木祥太名古屋市営地下鉄特別授業オリエンタル青空学区丸高アロチ本家本州最南端串本八鬼山那智の大滝大門坂和歌山中華そば熊野三山AOAnimation授業アイチータ結団式ネイルサロンマウアアイテムカンパニーtype属性keygen要素紅茶専門店Liyn-an愛知県選手団datalist要素加藤ひとみ西岡克真第52回技能五輪全国大会山田拓生青山敬司button要素HTML熊野古道マカベン10日でおぼえるLinuxサーバー入門教室名古屋駅麺通り卒業研究制作展NTTドコモ東海トライデント合同企業説明会googleGWDF81教室最優秀賞ジョルテdisplaylist-style-typeCSS3&jQueryで作るlist-itemモテ声ボーダーKDDIHTML5スマートアプリ&クリエイティブコンテストDesignerparseInt()石原愛実ランチ麺の匠宇野剛志テーブル名古屋マークアップ勉強会table親孝行中村健太NCF2014備忘録parseFloat()栗山聡一新年のご挨拶道家陽介concrete5尾花大輔Bloom*BlockGoogleAnalytics石井研二カメラワークKaizenアクティビティシナリオ田中稚妃呂源賢司横浜デジタルアーツPlatformグロースハックCODEポスターデザイン・コンペティション小林信次増田悟グロースハッカー中部国際空港株式会社株式会社アクアリングブラザー工業株式会社大西健太Lazy笈瀬本通商店街名古屋市中村区FLAVER3.0UXデザインキルターズフェスティバル2011GAINAXSUBARU放課後のプレアデスFLV8341-3:2010forPluginLoadSlimbox2ウェブリテラシー協会XJIS名古屋サイト改善研究会中級編ITCIRCUS柴乃櫂人広島弁AndrioidWEBサイト制作者のためのHCD(人間中心設計)の理解ポートフォリオアイデア帳名古屋グランパスチタハン10iPhone4optgroup要素商店街金シャチ商店街名古屋メディアボンドタロヲ細川太郎ペルソナ1→10design採用担当者の心に響く笈瀬本通Ultimate14商店サイト制作GA愛知商業高校名駅経済新聞名チャリプチ・フレーズ三蔵ポスターデザイン・コンペディションCODE名古屋クリエイターフットサルグラフィクデザイン高校みの治商店Twitter中部国際空港日本の四季東京ゲームショウ神戸神戸国際展示場ゲーム大賞アマチュア部門Ohanaクリスマスロゴマークメールマガジン東京コスモライアン・ウッドワードマーサ・グレアム5月11日松田洋樹プラネタリウム鈴木3DCG静岡県ツインメッセ静岡アクセシビリティからはじめる、WebサイトのUXデザイ建設経営者倶楽部ワクワク建設タウンNHNWebアクセシビリティBloosumTeamイマジンカップStationFuture熊﨑彩迎春敢闘賞2011年度第53回docomoドコモGoogleロゴゴールデンウィーク卒業制作・研究発表会2011FlexibleBoxぬいぐるみのラパン英国王のスピーチFlexboxトライデントカレッジUntitled!!!!!!!!味仙KtaistyleCustomSmilies愛知県立芸術大学Dmm.comキルト展卒業・修了制作展円JOY!map絵文字岡田陽一CGスペシャリストみつけもの恵那市岩村プロジェクションマッピング愛知淑徳大学ドラゴンゲートGATEDRAGONバルサマン3DTPの勉強部屋ablogcmsターミナル伊達千代北岡弘至JAPANWORLDCUPMagnumアクセシビリティ

zenback
メールフォーム

名前:
メールアドレス:
件名:
本文:

東京コスモ
トライデントコンピュータ専門学校
Pagetop