「職業訓練」カテゴリーアーカイブ

「基金訓練」についての投稿です。

基金訓練に行ってきました。(69日目)


基金訓練(Webデザイン・プログラミング科)の69日目に行ってまいりました。
69日目は、jQueryの実習の最終日です。

69日目の内容は下記のとおりです。

1.Ajax

Ajaxとは、非同期でWebページの一部を変更することができます。
このためページ全体をリロードする必要がありません。
Ajaxが使われているサイトで有名なところでは、グーグルマップがあります。

外部ファイルを表示する

load()メソッドを使って、ページ内に別ファイルの内容を表示します。

書式

$(‘セレクター’).load(‘外部ファイル名’,’パラメータ’,’コールバック関数’);

プログラム例

script部
$(‘.button1’).click(function(){
  $(‘.button2’).css(‘fontWeight’,’normal’);
  $(‘.button1’).css(‘fontWeight’,’bold’);
  $(‘#result’).load(‘156demo_news.html’);
});
$(‘.button2’).click(function(){
  $(‘.button1’).css(‘fontWeight’,’normal’);
  $(‘.button2’).css(‘fontWeight’,’bold’);
  $(‘#result’).load(‘156demo_kousin.html’);
});

css部
dl{
  clear:both;
  width:300px;
  padding:5px;
}
dt{
  float:left;
  margin-right:10px;
}
dt,dd{
  border-bottom:dotted 2px #ffddff;
  line-height:30px;
}
input{
  padding:5px;
}

HTML部
<input type="button" class="button1" value="最新ニュース" />
<input type="button" class="button2" value="更新情報" />
<div id="result"></div>

説明

$(‘#result’).load(‘156demo_news.html’);

156demo_news.htmlを読み込んで、div#resultに展開します。

結果

外部ファイルを取得する

get()メソッドを使って、別ファイルの内容を変数に読み込みます。

書式

$.get(‘外部ファイル名’,’パラメータ’,’コールバック関数’);

プログラム例

script部
$(‘.button1’).click(function(){
  $(‘.button2’).css(‘fontWeight’,’normal’);
  $(‘.button1’).css(‘fontWeight’,’bold’);
  $.get(‘156demo_news.html’,function(data){
    $(‘#result’).html(data);
  });

});
$(‘.button2’).click(function(){
  $(‘.button1’).css(‘fontWeight’,’normal’);
  $(‘.button2’).css(‘fontWeight’,’bold’);
  $.get(‘156demo_kousin.html’,function(data){
    $(‘#result’).html(data);
  });

});

css部
dl{
  clear:both;
  width:300px;
  padding:5px;
}
dt{
  float:left;
  margin-right:10px;
}
dt,dd{
  border-bottom:dotted 2px #ffddff;
  line-height:30px;
}
input{
  padding:5px;
}

HTML部
<input type="button" class="button1" value="最新ニュース" />
<input type="button" class="button2" value="更新情報" />
<div id="result"></div>

説明

$.get(‘156demo_news.html’,function(data){
    $(‘#result’).html(data);
  });

156demo_news.htmlを変数に読み込んだ後、、div#resultの中身をその変数に置き換えます。

結果

2.プラグイン

プラグインを使用して、jQueryにさまざまなメソッドを追加します。

プラグインを使用するにはjQuery本体のjsファイルの後に、scriptタグで、プラグインのファイルを読み込みます。

scrollToプラグイン

scrollToプラグインは、ページ内の指定した要素まで、スムーズにスクロールする為のプラグインです。

プログラム例

head部
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js">
</script>
<script type="text/javascript" src="jquery.scrollTo-min.js"></script>

script部
$(‘.button1’).click(function(){
  $.scrollTo(‘#box1’,1000);
});
$(‘.button2’).click(function(){
  $.scrollTo(‘#box2’,1000);
});
$(‘.button3’).click(function(){
  $.scrollTo(‘#box3’,1000);
});

css部
#innerBox1{
  width:200px;
  height:120px;
  margin:5px;
  background-color:#00ff00;
}
#innerBox2{
  width:200px;
  height:120px;
  margin:5px;
  background-color:#ff0000;
}
#innerBox3{
  width:200px;
  height:120px;
  margin:5px;
  background-color:#0000ff;
}
#innerBox4{
  width:200px;
  height:100px;
}

HTML部
<div id="box1">
<input type="button" class="button1" value="BOX1へ" />
<input type="button" class="button2" value="BOX2へ" />
<input type="button" class="button3" value="BOX3へ" />
<div id="innerBox1">BOX1</div>
</div>
<div id="box2">
<input type="button" class="button1" value="BOX1へ" />
<input type="button" class="button2" value="BOX2へ" />
<input type="button" class="button3" value="BOX3へ" />
<div id="innerBox2">BOX2</div>
</div>
<div id="box3">
<input type="button" class="button1" value="BOX1へ" />
<input type="button" class="button2" value="BOX2へ" />
<input type="button" class="button3" value="BOX3へ" />
<div id="innerBox3">BOX3</div>
</div>
<div id="innerBox4"></div>

説明

$.scrollTo(‘#box1’,1000);

div#box1まで、1秒かけてスクロールしながら移動します。

結果

※jQueryのプラグインは、ネット上で多数公開されており、使用する時は、demoのソースなどを参考しながらプログラムすれば、やりやすいと思います。ただし、ライセンス条項を読まれて、商用利用など問題ないかご確認のうえご使用ください。


備考

jQueryは、配られたプリントで習っており、下に紹介している教本には載っていません。




基金訓練に行ってきました。(68日目)


基金訓練(Webデザイン・プログラミング科)の68日目に行ってまいりました。
68日目は、PhotoshopとHTML&CSSプログラミングの実習です。

68日目の内容は下記のとおりです。

1.フォトショップでデザインしたページをコーディング

基金訓練に行ってきました。(57日目)、基金訓練に行ってきました。(63日目)で、
フォトショップを使って作成したWebページをコーディングしていきました。

フォトショップで画像のスライス

  • 「スライスツール」を使ってスライスしたい画像を四角形で囲みます。
    (通常スライスツールは、「切り抜きツール」を長押しすれば出てきます。)
  • スライスした画像の各角を拡大して、ちゃんと範囲に入っているかどうか、目視で確認し、違っていれば、バウンディングボックスの各辺をドラッグして修正します。
  • スライスした画像を右クリックして、「スライスオプションを編集」をクリックし、「スライスオプションウインドウ」を開きます。
  • 「スライスオプションウインドウ」の項目の中の「名前」を、保存したい名称にし、「OKボタン」を押します。
    (その名前のついたファイル名でサーバーにアップするので、半角英数字にします。)
  • 「ファイルメニュー」→「Webおよびデバイス用に保存」で、「Webおよびデバイス用に保存ウインドウ」を開きます。
  • 画面上で、画像ファイルにしたいスライスをクリックして選択します。
    (選択したスライスの枠は金色になります。)
    (複数選択したい時は、Shiftキーを押しながら2個目以降をクリックしてください。)
  • 「プリセット」で、保存する画像形式を選び保存ボタンを押し「保存ウインドウ」を開きます。
    (写真やグラデーションのついた画像はJPEG 高、それ以外と背景が透明の画像は、PNG-24または、GIFを選択します。)
  • 「設定」で「その他」を選択し、「出力設定ウインドウ」を開きます。
  • 「最適化ファイル」の「画像をフォルダーに保存」のチェックをはずし、「OKボタン」を押して、「保存ウインドウ」に戻ります。
    (任意のフォルダーへ画像ファイルを保存するため。)
  • 「スライス」で、「選択したスライス」を選択します。
  • 保存したいフォルダーを選んで、「保存ボタン」を押せば、ファイル作成完了です。

※背景を透明にしたい時は、背景の部分の画像はあらかじめNoShowにしておきます。

コーディング

今回は、テキストエディタとして、ドリームウィバーを使用しました。

  • 「ファイルメニュー」→「新規」で、「新規ドキュメントウインドウ」を開きます。
  • 「ページタイプ」を「HTML」、「レイアウト」を「なし」、「ドキュメントタイプ」を「XHTML 1.0 Transitional」にして、「作成ボタン」を押し、新規HTMLドキュメントを作成します。
  • 「ファイルメニュー」→「保存」で、名前をつけて保存します。
  • <head>部に、タイトルなどの必要事項を書き込みます。
  • ID付のdivを作成して、ヘッダーやフッターなどにグループ分けします。

    <body>
    <div id="container">
    <div id="head">
    </div><!–#head end–>
    <div id="navi">
    </div><!–#navi end–>
    <div id=contents>
    <div id="contL">
    </div><!–#contL end–>
    <div id="contR">
    </div><!–#contR end–>
    </div><!–#contents end–>
    <div id="foot">
    </div><!–#foot end–>
    </div><!–#container end–>
    </body>
  • フォトショップから、テキストを、グループ分けしたdiv内の対応する位置にコピペし、ロゴや画像は、それがわかるような内容で、対応する位置にテキストで打ち込みます。

    <div id="contL">
    特集     ←(ここの見出しは画像ですが、代替にテキストを入れておきます。)
    HTML特集
    HTMLの特集です。
    CSS特集
    CSSの特集です。
    </div><!–#contL end–>
  • グローバルナビなどをリストにします。

    <div id="navi">
    <ul>
    <li>HOME</li>
    <li>HTML講座</li>
    <li>CSS講座</li>
    <li>お知らせ</li>
    </ul>
    </div><!–#navi end–>
  • 「ファイルメニュー」→「新規」で、「新規ドキュメントウインドウ」を開きます。
  • 「ページタイプ」を「CSS」」にして、「作成ボタン」を押し、新規CSSファイルを作成します。
  • 「ファイルメニュー」→「保存」で、名前をつけて保存します。
  • HTMLドキュメントにmetaタグとlinkタグを<head>内に記入して、CSSファイルと関連付けします。

    <meta http-equiv="Content-Style-Type" content="text/css" />
    <link rel="stylesheet" href="style.css" type="text/css" />
  • CSSファイルで、基本的な体裁の設定をします。

    body{
        margin:0;
        padding:0;
        font-size:100%;
        font-family:"メイリオ", "MS ゴシック";
        font-style:normal;
        text-align:center;
        text-decoration:none;
        list-type;none;
        color:#ffffff;
        border-style:none;
    }
    container{
        margin-left:auto;
        margin-right:auto;
    }
    ※bodyの設定の中で、ブラウザデフォルトの設定をクリアするところは、base.cssとして、別ファイル
    にする方法もあります。
  • 画像をHTMLに記述していきます。

    <div id="contL">
    <img src="image1.gif" width="100" height="30px" alt="特集"/>
    <dl>
    <dt>
    HTML特集</dt>
    <dd>HTMLの特集です。</dd>
          ・
          ・
          ・
  • 見出しタグを記述します。

    <div id="contL">
    <h2>s<img src="image1.gif" width="100" height="30px"
    alt="特集"/></h2>
          ・
          ・
          ・
  • CSSで、レイアウトを整えていきます。

グローバルナビのマークアップ

ナビボタンを、CSSを用いてマウスオーバーで変化させるためには、背景画像で記述する必要があります。
その為、imgタグで設定できるaltが使用できないので、画像に対応するテキストが無く(画像に文字を書き込んだ場合)、このままではSEOによくないといわれています。
そこで、その問題を解決する為に、リスト要素のテキストを残したまま、そのテキストを見えなくする手法を紹介します。

HTML部

<ul>
<li class="navi1"><a href="#">メニュー1</a></li>
<li class="navi2"><a href="#">メニュー2</a></li>
</ul>

CSS部

ul{
    margin:0;
    padding:0;
    list-style:none;
    overflow:hidden;
}
li{
    margin-left:5px;
    float:left;
    text-indent:-9999px;
    overflow:hidden;

}
li a{
    display:block;
    width:50px;
    height:50px;
    background-repeat:no-repeat;
}
li.navi1 a{
    background-image:url(image/kero_b.png);
}
li.navi2 a{
    background-image:url(image/kero_g.png);
}
li.navi1 a:hover{
    background-image:url(image/kero_r.png);
}
li.navi2 a:hover{
    background-image:url(image/kero_r.png);
}

上の赤文字部なし

上の赤文字部あり


備考

jQueryは、配られたプリントで習っており、下に紹介している教本には載っていません。




基金訓練に行ってきました。(67日目)


基金訓練(Webデザイン・プログラミング科)の67日目に行ってまいりました。
67日目は、jQueryの実習です。

67日目の内容は下記のとおりです。

1.表示・非表示のメソッドを使って、アコーディオンメニューを作成

slideDown、slideUpメソッドを使って、アコーディオンメニューを作成します。

プログラム例

script部
$(‘dt’).mouseover(function(){
  $(this).addClass(‘mouseover’);
});
$(‘dt’).mouseout(function(){
  $(this).removeClass(‘mouseover’);
});
$(‘dt’).click(function(){
  $(‘dd:visible’).slideUp(500,function(){
    $(‘dd:hidden’).prev().removeClass(‘menuOpen’);
  });
  if($(this).next().css(‘display’)==’none’){
    $(this).next().slideDown();
    $(this).addClass(‘menuOpen’);
  }
});

css部
dl{
width:200px;
border:solid 0px #555;
color:#838383;
}
dt{
background-color:#F8DAD6;
height:20px;
cursor:pointer;
border-bottom:solid 2px #ffffff;
padding-left:5px;
line-height:20px;
}
dd{
width:185px;
border-left:solid 5px #00ff00;
border-bottom:solid 2px #ffffff;
background-color:#FDF2F0;
padding:5px;
display:none;
}
dt .last{
border-bottom:none;
}
.mouseover{
background-color:#ffff00;
font-weight:bold;
font-size:120%;
}
.menuOpen{
border-left:solid 5px #00ff00;
border-bottom:none;
font-weight:bold;
font-size:120%;
}

HTML部
<dl>
<dt>メニュー1</dt>
<dd>内容1内容1内容1内容1内容1内容1内容1内容1内容1内容1内容1内容1</dd>
<dt>メニュー2</dt>
<dd>内容2内容2内容2内容2内容2内容2内容2内容2内容2内容2内容2内容2内容2内容2内容2内容2</dd>
<dt class="last">メニュー3</dt>
<dd>内容3内容3内容3内容3内容3内容3内容3内容3</dd>
</dl>

説明

$(‘dd:visible’)

可視状態にあるdd要素を示すセレクター。
(例の場合、開いているタブのテキスト部。)

$(‘dd:hidden’).prev()

非表示状態にあるdd要素の一つ前の要素を示すセレクター。
(例の場合、閉じているタブのdt要素。)

$(this).next()

イベント対象の要素の次の要素を示すセレクター。
(例の場合、クリックされたdt要素の次のdd要素。)

結果

2.animate()メソッド

CSSプロパティを指定して、アニメーションで要素を、表示したり非表示にしたりします。

書式

$(‘セレクター’).animate(CSSプロパティ,スピード,動き,function(){
      アニメーションが終わった時の処理
});

プログラム例

script部
$(‘.box’).click(function(){
  $(this).animate({’top’:’100px’},1000);
  $(this).animate({’left’:’100px’},500);
  $(this).animate({’left’:’25px’,’top’:’25px’},2000);
});

css部
.box{
  width:30px;
  height:30px;
  background-color:#00ff00;
  position:absolute;
  left:25px;
  top:25px;
  cursor:pointer;
  text-align:center;
  line-height:30px;
}

HTML部
BOXをクリック!
<div class="box">BOX</div>

説明

$(this).animate({’top’:’100px’},1000);

イベント対象の要素を、CSS top:100px まで、1秒(1000ミリ秒)でアニメーションします。

結果

3.animate()メソッドの動きのプラグイン

easingプラグインを使って、変化のある動きのアニメーションが可能です。

書式

$(‘セレクター’).animate(CSSプロパティ,

      {duration:スピード,easing:’関数名’},

      function(){アニメーションが終わった時の処理}

);
<head>部に
<script type="text/javascript" src="jquery.easing.1.3.js"></script>
を記述します。srcは、プラグインのファイルの場所を指定します。
※プラグインのダウンロードは、
http://gsgd.co.uk/sandbox/jquery/easing/
からします。

プログラム例

script部
$(‘.box’).click(function(){
$(this).animate({’top’:’100px’},
      {duration:1000,easing:’easeOutBounce’}
);
$(this).animate({’left’:’100px’},
      {duration:1000,easing:’easeOutElastic’}
);
$(this).animate({’left’:’25px’,’top’:’25px’},
{duration:1000,easing:’easeInExpo’}
);
});

css部
.box{
  width:30px;
  height:30px;
  background-color:#00ff00;
  position:absolute;
  left:25px;
  top:25px;
  cursor:pointer;
  text-align:center;
  line-height:30px;
}

HTML部
BOXをクリック!
<div class="box">BOX</div>

説明

$(this).animate({’top’:’100px’},
      {duration:1000,easing:’easeOutBounce’}
);

イベント対象の要素を、CSS top:100px まで、1秒(1000ミリ秒)で関数easeOutBounceを使用して、アニメーションします。
※easingプラグインの関数を使った動きは、
http://semooh.jp/jquery/cont/doc/easing/
で、見ることができます。

結果


備考

jQueryは、配られたプリントで習っており、下に紹介している教本には載っていません。