ウェブ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」を適用させていたら結構時間がかかってしまいました(言い訳)
検索フォーム
プロフィール

担当:Webデザイン学科+

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

トライデントロゴ

質問などはLINEでどうぞ。

友だち追加数
Instagram
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」終了しました。ご来場ありがとうございました!
「うぇ〜〜〜〜〜ぶ!!」終了。ご来場ありがとうございました!
<コンテスト>
NCF2017でグランプリを受賞しました!
信州アプリコンテスト0 [ゼロ] KDDI賞受賞!
NCF2014(スマホアプリ開発テーマ2) 準グランプリ獲得!
最優秀賞!HTML5スマートアプリ&クリエイティブコンテスト
NCF2013グランプリ受賞!!!
<Webサイト制作>
ミス・ユニバース・ジャパン岐阜大会公式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回若年者ものづくり競技大会閉会式
タグリスト 改

トライデントコンピュータ専門学校Webデザイン学科WCAN業界研究技能五輪ウェブデザイン職種ウェブデザイン2013若年者ものづくり競技大会Webサイト名古屋映画ECCコンピュータ専門学校ポートフォリオ学生ブログWinter2009WebデザインWebサイト制作JavaScriptWordPress2011礒田優かっぱ商店街a-blogcmsWordpressライトニングトーク入学式技能五輪全国大会2014Nagoya卒業制作展矢野りん石黒雄介WebSummerアクセス解析CGイラスト学科瀬川大勝オープンキャンパスアクアリング1年生進級展テンプレート作成面白法人カヤックホームページ・ビルダーAutumn若年者ものづくり大会卒展杉本拓也ウェブデザイン技能競技会Flash2015GIO名古屋駅mini体験入学IIJWeb制作会社AdobeHCDあいちカレーラーメンコンテスト東京研修ココストア2012卒業制作html5in大阪第48回技能五輪全国大会Japan2010マール専門学校成田篤紀水野裕太CSS3GooglejQueryラーメンWebワークショップHTML5情報デザイン田中睦翔学生閉館日情報デザインフォーラムgifアニメプレゼンテーションCentOSBananaAdCSS合同企業展愛知県セントレア上村水月99eagleプロジェクト人間中心設計ウェブデザイン技能検定Spring企業訪問ブログパーツtextarea要素長屋めぐみoutput要素select要素option要素コミュニケーションデザインワークショップ阿部淳也legend要素fieldset要素就職活動名古屋市科学館AnalyticsCSSNiteinput要素NTTドコモ東海particlecanvasまぼろしカリキュラムビジュアルエディタPlugin堀尾真衣CMSうぇーぶ産学協同スマホアプリポートフォリオサイト会社訪問SEO1年生作品展メ~テレ卒業式空気人形iPhoneWEBサイト制作者のためのHCDの理解in名古屋COMMUNICATIONNEXT作品集スマートフォンレイアウト知多みるくナゴヤドーム中日ドラゴンズWordFesトライデント合同企業展トライデント5T(ファイヴティー)Adventイラストマップ笈瀬本通り名商連Yahoo!Japan和み戸田芳裕写真真鍋大度塚本碧たこ焼きアンティー・ファクトリーWebデザインギャラリーFICClabel要素Calendar結果発表岩手県BoxワークショップカメラLikeウェブデザイン技能競技大会モンキーワークスForumUX静岡form要素幕張メッセ林田実樹鷹野雅弘ディプロスアサココ!jbstyleWebクリエイター能力認定試験熊谷佳紀茂森仙直学生インタビューMarkup導入授業F-site謹賀新年WordCamp佐藤歩サイバーエージェントApple企業課題情報デザイン基礎初期設定名古屋開府400年祭DTPWORLDサーティファイStore2008グループ制作進級展豊田市美術館RunstantMAXプロトコル分析ビジュアルデベロップメントFLASH伊藤頼子FLEXデザイナーのためのプログラミング入門タロヲ商店街細川太郎1→10designアンドリュー・ワイエス愛知県美術館金シャチ商店街PHPサーバーIAアクセシビリティWEBサイト制作者のためのHCDの理解名古屋メディアボンドYORKE.佐藤可士和大沢たかおHTML+CSS基礎ネスカフェゴールドブレンドフナ犬造形基礎ポートピア名古屋求人新世界武将都市名古屋おもてなし武将隊ナゴヤプレゼン演習道頓堀ActionScript基礎Webリテラシーデッサン松坂屋美術館スタジオジブリ・レイアウト展SakaeunoplusCollegeNightペルソナ知多半島CS4Designプロ野球サムライ中村勇吾TEXTURE技能五輪予選鳥取砂丘中部国際空港株式会社丹下紘希Namブラザー工業株式会社株式会社アクアリングカメラワークHPデザインArtlessCODEポスターデザイン・コンペティション名古屋サイト改善研究会Stefan中級編増田悟W+KTokyo(+CRUZ)小林信次Qubibiデザインコンテスト01カンファレンスウェブデザイン部門LoadforSlimbox2JISウェブリテラシー協会Lazy大西健太CONTESTGoogleAnalytics石井研二THEWEB田中稚妃呂横浜デジタルアーツ名駅経済新聞名チャリ名古屋グランパスチタハン10VideopuppetryASIASIGGRAPH2008WinterXRAY鳥取WEBサイト制作者のためのHCD(人間中心設計)の理解デザイン広島弁iPhone4柴乃櫂人ITCIRCUSAndrioid武豊アニメーションフェスティバルWebDirectionEast'08笈瀬本通商店サイト制作プチ・フレーズ三蔵SagmeisterUltimate愛知商業高校GAみの治商店Twitter名古屋クリエイターフットサルデザインのへそCODEポスターデザイン・コンペディションHelveticaグラフィクデザインシナリオ餃子カラーストリートビューウルトラ展ヤノベケンジカスタマイズセミナーAutuminXJAPANインターネットクリエイティブアワードYahoo!PHP勉強会インターネットスキル認定普及協会大富豪スコアシートライブペイントITホワイトボックス世界のCMフェスティバル黒い太陽ブランディングHCDプロセスマクロマリオネット映画のオープニング閉会式マークアップ演習ごはんとFlashFITCCREAM荒俣宏ゆるキャラdotFesCALENDARKyotoUNIQLOFlash-Gameswonderfl東京ゲームショウ2009人喰いの大鷲トリコMozorama電信柱エレミの恋後期アニメーションescalatorウサビッチanimationコマ撮りアニメソバットシアター今井佳子アイディグラフィックスグラフィックデザインCMS特集入賞ガンダムカナバングラフィックス富岡聡ナゴヤデザインウィーク2009ActionScriptUNIQLOCKヱヴァンゲリヲン新劇場版:破西田幸司是枝裕和監督国家検定ギレン総帥LPOCG・イラストコンテストモーション演習第4回アックゼロヨン・アワード学科食品サンプル旭食品サンプル製作所ロゴ公募教育勉強会WasThereLabuatSalsaTokyo夢プロジェクト2009・成果報告会ウェブリテラシー協会第一回セミナーThenAnd新横浜ラーメン博物館横浜中華街慶華飯店NIKEUTZOOMBlogIA2010キックオフセミナーCOMPLETE広告批評TAFF'09武豊町福みつWCAN×CSSNiteWCAN46西村真里子学生参加浜松ADVENTCHILDRENVIIFANTASYアートアニメーションFINAL箱根合宿森川眞行ゲーム音楽イラストコンテストヨウイチウェブDeBLOG日本ファルコム情報デザイン教育勉強会デュエル・マスターズ長谷川恭久小野裕子#infoeduコピーライティング山崎デザイン事務所スーパーエレメンツファルコム音楽フリー宣言ペルソナ/シナリオ法□□□switchワークスコーポレーションGENOウィルス横浜デジタルアーツ専門学校「ヤノベケンジ-ウルトラ」展日本電子専門学校会社見学鎌倉セキュリティ3校合同発表会おかだよういち山村浩二デコクレ浅野智クリ博就職フェスタペルソナ&シナリオ法TAFFマーサ・グレアム仕事UIバイドゥ平野健太郎ワイヤーフレームうぇ~~~~~~~ぶ出席率職業実践専門課程レスポンシブWebデザインウェブアートデザイナーポートフォリオアイデア帳採用担当者の心に響くKaizenアクティビティシナリオ源賢司UXデザインPlatformグロースハック高校14グロースハッカー学位専門士平野秀幸坂本貴史制作実績津田直明IA/UXプラクティスカークスヴィルプログラムクイズAO入試河地芳明沼田啓助2016原一浩懇親会合宿合同制作合同制作合宿Web制作のおしごとWebディレクター坂本邦夫WebプログラマーWebデザイナーDmm.com岡田陽一2015年度新入生WF1でBLOGインターンシップCrayonSyntaxアップルップルマークアップエンジニア森田霞HighlighterスマートフォンサイトUI図鑑CSS3&jQueryで作るオリエンタル第52回技能五輪全国大会HTMLbutton要素麺の匠親孝行名古屋駅麺通りNCF2014新年のご挨拶木村哲朗フロントエンドエンジニア東京コスモクリスマス熊﨑彩第53回3DCG松田洋樹FlexibleBoxFlexbox味仙CGスペシャリストワクワク建設タウン建設経営者倶楽部八木智章竹中民男夏麺フェア飯田淳介ScrollmagicScrollMagicアクセシビリティからはじめる、WebサイトのUXデザイWebアクセシビリティVelocity.jsCodePenJSBin山川綾那鈴木雄太フォトアルバムスタジオディテイルズ株式会社エイチーム梅澤朝樹ノートPC貸与出張講座尾鷲高校衣台高校服部友厚佐藤洋介SyntaxHighlighter制作合宿ES2015ES6v4.0.1WCAN2017Springターミナル学校Proxy夏休みの課題スクラップブックWebアプリNCF2017信州アプリコンテスト[ゼロ]アプリコンテスト安藤志維display:gridGridLayout友章堀川ミス・ユニバース・ジャパン岐阜大会北濱大輔2017AWARDS出身高校D3.jsTOCTable久保怜也ContentsofECMAScriptライデントコンピュータ専門学校ジムナストコロン日清食品グループタカガールサイト水曜日のカンパネラ夏休み夏季閉館日Monaca学生作品集沖縄トライデント祭りプラネタリアンResurgencejsdo.itCodeplyPlunkerJSFiddle涼麺駅麺通りDay:Independenceクイズ情報系学園祭HTMLCollectionNodeList美大芸大appendChild()Webプログラミング初級講座お母さんの二度見展学習マイクロソフト水野怜美株式会社LIGいな世驛麺通り再進学醐りょうインスタグラム料理ドラマInstagramdatalist要素keygen要素Futuredocomoドコモ2011年度StationNHNBloom*BlockBloosumTeamイマジンカップ迎春敢闘賞ゲーム大賞アマチュア部門東京ゲームショウ神戸神戸国際展示場Ohanaメールマガジンツインメッセ静岡静岡県ロゴマーク尾花大輔第7回若年者ものづくり競技大会Muse画像をチェックボタンにする張山大祐JQueryWeb制作合宿たこ焼きパーティみんなのICTウェブアクセシビリティモリサワFacebook第50回結果SHOWGAMETOKYO東京ゲームショウ2012ベースキャンプ名古屋Facebookページ長野IllustratorSVG鈴木絵文字円JOY!map卒業・修了制作展愛知県立芸術大学CustomSmiliesKtaistyleUntitled!!!!!!!!英国王のスピーチ卒業制作・研究発表会2011ぬいぐるみのラパンキルト展日本の四季笈瀬本通商店街名古屋市中村区FLAVER3.0FLVキルターズフェスティバル2011放課後のプレアデス中部国際空港GAINAXSUBARUトライデントカレッジGATEDRAGONドラゴンゲート愛知淑徳大学ゴールデンウィークGoogleロゴプラネタリウムライアン・ウッドワードグリッドレイアウト5月11日みつけもの恵那市岩村北岡弘至伊達千代DTPの勉強部屋ablogcmsMagnumJAPANWORLDCUPプロジェクションマッピングバルサマン3佐藤ねじ東京串本八鬼山熊野古道マカベン本州最南端那智の大滝アロチ本家和歌山中華そば熊野三山大門坂名古屋マークアップ勉強会table道家陽介concrete5栗山聡一備忘録中村健太ランチテーブル宇野剛志石原愛実丸高丸田屋アイチータ結団式愛知県選手団青山敬司授業ネイルサロンマウアoptgroup要素type属性紅茶専門店Liyn-anアイテムカンパニー山田拓生加藤ひとみ名古屋市営地下鉄柏木祥太スパルタキャンプ岩出本店青空学区特別授業西岡克真AnimationAOparseFloat()parseInt()第51回技能五輪全国大会Webデザイン演習あいちトリエンナーレ2013そこにいない。展嵐が如く晴れやか麺やOK麺屋ココイチフジ家55さかなやPARTYPerfumeプレゼンThree.js木下健太郎就職たにぐちまこと田代豊byinspiredRhizomatiksカレーラーメン高橋雅人10日でおぼえるLinuxサーバー入門教室卒業研究制作展最優秀賞ジョルテトライデント合同企業説明会F81教室DesignergoogleGWDKDDIHTML5スマートアプリ&クリエイティブコンテストNCF2013美術大学芸術大学AWARDNTTドコモ東海支社list-style-typeモテ声ボーダーlist-itemdisplay8341-3:2010

メールフォーム

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

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