Javascriptでランキングクリック時の画像切り替える
作品No.はじめまして しかちく です。最初で最後の登場となると思います。
いつも、とりぶうが大変お世話になっています。特に常連の方々のコメントは楽しく拝見しています。
さて、以前からメール等々でよく以下の質問を頂きます。
「ランキングのクリックがされると絵が変わりますが、どうすればいいんでしょうか?教えてください。だめでしょうか?・・・・・」
ダメなことないんです。ただ、説明する自信がありません。でも、たびたび聞かれるので一応やってみました。とりあえず一番下のランキングをすべてクリックして動作を確認してください。(我田引水!)
※以下はJavascriptを理解されているのを前提に説明しますので、Javascriptに関しては別のところで研究してくださいね。
1 まずの中にJavascriptファイルが使えるようにしてあげる。(1行目)そして、記事最後部に記述しているプログラム名rankimage1.jsを読み取れるようにする。(2行目)
<head>
以下を追加。
<meta http-equiv="Content-Script-Type" content="text/javascript" />
<script type="text/javascript" src="ディレクトリパス/rankimage1.js"></script>
ここまで
</head>
2 <body> </body>の中で何個クリックしてくれたか変数を作って初期化する。
<body>下に以下を貼り付ける。変数の個数はランキングバナーの数によって変更してください。
<!ChangeImage>
<script type="text/javascript">
<!--
var ra=0;
var rb=0;
var r1=0;
var r2=0;
var r3=0;
var r4=0;
var r5=0;
var r101=0;
// -->
</script>
ここまで
3 そして、ランキングのバナーを貼り付けたいところに以下のように貼り付ける。バナー等々は各自変更してくださいね。
ポイントは、onClick="RankingClick2('<%topentry_title>','1')" です。 意味はonClick="RankingClick2('ファイル名','バナー番号')" です。
<%topentry_title>はFC2のタグなので、他の方は別の名前を自由につけてください。これは、記事ごとにランキングを設置する場合に画像名を変えておかないと動かなくなるためです。
また、'1' 等の数字はバナーナンバーです。このブログでは、ランキングを5つ使っているので1から5までつけています。どのバナーがクリックされたかを判断します。
ここから
<a href="http://blogranking.fc2.com/in.php?id=220859" target="_blank"><img src="http://blog-imgs-12.fc2.com/t/a/n/tanno10/fc2ranking.gif" alt="FC2Ranking" onClick="RankingClick2('<%topentry_title>','1')"border="0" /></a>
<a href="http://novel.blogmura.com/novel_shortshort/" target="_blank"<>img src="http://novel.blogmura.com/novel_shortshort/img/novel_shortshort88_31.gif" width="88" height="31" onClick="RankingClick2('<%topentry_title>','2')" border="0" alt="にほんブログ村 小説ブログ ショートショートへ" /></a>
<a href="http://blog.with2.net/link.php?545188" target="_blank"><img src="http://blog-imgs-12.fc2.com/t/a/n/tanno10/blogranking.gif" alt="blogranking" onClick="RankingClick2('<%topentry_title>','3')" border="0" /></a>
<a href="http://www.dendou.jp/in/2177177917" target="_blank"><IMG SRC="http://img.dendou.jp/b_b_wp.gif" onClick="RankingClick2('<%topentry_title>','4')" BORDER="0" ALT="人気ブログランキング【ブログの殿堂】"></a>
< href="http://kutsulog.net/cat12-1.php?id=68501" target="_blank"><img src="http://blog-imgs-12.fc2.com/t/a/n/tanno10/kuturogu.gif" alt="クツログ" onClick="RankingClick2('<%topentry_title>','5')" border="0" /></a>
ここまで
4 次ががとりぶうが変わる前の最初の絵を貼る場所です。ポイントは同じサイズの絵を6枚用(初期画像+ランキング5分)意すること。サイズが違うと動きません。" name="<%topentry_title>"でファイル名をつけています。この名前がバナー部分と異なると認識しません。
ここから
<img src="http://blog-imgs-34.fc2.com/t/a/n/tanno10/r1tori0.gif" alt="ショートショートとりぶうの読むコントの応援をお願いします。" name="<%topentry_title>">
ここまで
5 最後にプログラムの内容です。外部ファイル化しています。
ファイル名はrankimage1.jsです。私はwordでエンコード化したテキストファイルとして
保存しました。.jsの拡張子がついていれば名前は何でもかまいませんが、
一番最初のsrc="ディレクトリパス/rankimage1.js をあわせてくださいね。
クリックしてくれた個数をカウントしその数に合わせた画像を表示する
プログラムです。同じバナーを何度押しても1回にしかカウントしないようになっています。
リロードせずに画像を切り替えます。
function RankingClick2(imageName,Rno)
{
var r10=Rno;
if ( Rno==1 ) {
r1=1;
}else{
if ( Rno==2 ) {
r2=1;
}else{
if ( Rno==3 ) {
r3=1;
}else{
if ( Rno==4 ) {
r4=1;
}else{
if ( Rno==5 ) {
r5=1;
}}}}}
//r1=1;
ra=r1+r2+r3+r4+r5
// document.write(r10);
//条件分岐
switch(ra){
case 1: document.images[imageName].src='1枚目の画像アドレス(星一個)';
break;
case 2: document.images[imageName].src='2枚目のアドレス(星2個)';
break;
case 3: document.images[imageName].src='3枚目のアドレス';
break;
case 4: document.images[imageName].src='4枚目のアドレス';
break;
case 5: document.images[imageName].src='5枚目のアドレス';
break;
}
}
6 以上です。正直、説明には困りはてました。プログラムを考えるのにも大変苦労しましたが、説明も難しいです。
またひっそりと隠れたいと思います。ありがとうございました。
クーピーちゃん:いつも優しい言葉ありがとう。(現在研究中のメニューをおおらかに見てくれること)
のぶちんさん:神の声届いてますよ。(イラストをほめてくれたこと。)
イノぶたさん:朝のコメントを読むのが楽しみです。
その他の皆さんもありがとう!これからもおおらかに、おおざっぱに見守ってくださいね!バイバイ!


あしたも、お待ちしております。!

