どなたか・・・
-
0 名前: 美沙 : 2005/06/07 12:46
- ここまで作りました。後は各、動物アイコン、人物アイコン等の値に対して画像を変更するだけなんですけど、難しくてわかりません・・・サンプルコードをどなたかぜひお願いいたします。
こんな難しいの誰かできるのかな・・・
<html>
<head>
<script language="Javascript">
var data = new Array("素材を選択してください","アイコン","テクスチャ","壁紙");
var data0 = new Array("↑から素材を選択してください。");
var data1 = new Array("アイコンの素材を選択してください","動物アイコン","人物アイコン","食べ物アイコン");
var data2 = new Array("テクスチャの素材を選択してください","POP","宇宙","自然");
var data3 = new Array("壁紙の素材を選択してください","風景写真","動物写真","イラスト");
function setlist(objid, arr){
var obj = document.getElementById(objid);
for(i=obj.length; i>=0; i--){ obj.options[i] = null; }
for(i=0; i<arr.length; i++){
obj.options[i] = new Option(arr[i]);
obj.options[i].value = arr[i];
}
}
</script>
</head>
<body onload="setlist('sel0', data);">
<div style="margin:20px;padding:10px;background-color:#ffffff;width:530px;">
<b>ダウンロードしたい素材を選択してください。
<form>
<select id="sel0" input type="radio" name="sel0" style="width:200px;" onChange="setlist('sel1', eval('data' + this.selectedIndex))">
<option>---</option>
</select>
<select id="sel1" name="sel1" style="width:200px;" onChange="">
<option>↑から素材を選択してください。</option>
</select>
</form>
</div>
</body>
</html>
-
1 名前: Pid : 2005/06/07 12:46
- とりあえず。
【全体的なこと】
・つまり,どうなれば良いのですか? ←ここが不明なので,今のままでは答えようがありません。
・スクリプト機能がオフの利用者にはどう対処しますか。
【内容に関して】
・script 要素の language 属性は非推奨。
・変数は var で宣言してから使うこと(i がグロ−バル変数になっています)。
・getElementById を使えるのなら,new Option ではなく createElement('option') した方が良いのでは(MacIE のバグに対処するためならともかく)。
【質問の仕方について】
・質問のタイトルは「内容を反映したもの」にして下さい。
・マルチポストをするのなら,他の投稿先を必ず書いて下さい。
http://otd8.jbbs.livedoor.jp/javascript/bbs_tree?base=14100&range=1
http://www2s.biglobe.ne.jp/~club_tom/cbbs/cbbs.cgi?mode=all&namber=2591&type=0&space=0&no=0
と言うか,ここはマルチポスト禁止なので,私はこれ以上のコメントを控えさせて頂きます。まあ,それほど難しい内容ではなさそうなので,頑張って下さい。
-
2 名前: U D : 2005/06/07 12:46
- ここまで自分で作れたのであれば後はできそうなんですが。。。
まぁ現在のこのスクリプトについてまとめると、
1.画像の種類を選択
2.次のセレクトボックスに(1.)の種類の画像の一覧(?)を表示
ですね。
そして、(3.)で該当する画像を表示したいけどできない、ということでしょうか?
とりあえず以下のを追加してみてください。
二次元配列でイメージリストを作っておいて、2番目のセレクトボックス変更時にイメージを変更します。
短時間で作ったのであんま動作確認してないので細かい部分はカンベンしてくだはい。
それと、いちいちvar data*=…とするのめんどいと思うので、それも二次元配列にしてみてはどうでしょうか?
んで、SCRIPTの要素は type="text/javascript" の方がいいです。(多分)
※ある程度分かると思うので"これをBODYの〜に"とかは省いています。各自分で入れてください
//ここから
var il = new Array()
il[0] = new Array("各画像のSRCを入れていってください")
il[1] = new Array("テクスチャ-POP","宇宙","自然")
il[2] = new Array("壁紙-風景写真","略","略")
function imgset(a,b){
a--;b--;
document.getElementById("I1").src=il[a][b];
//alert("["+a+"]["+b+"] | "+il[a][b]);
//↑は二次元配列の確認時等にコメントを外して使ってください
}
<IMG src="image/test.gif" id="I1">
あとこれは別にいいんですが、
"↑から素材を選択してください。"ってあるけど、多分これ左(←)です。
2:46 コメントミス修正
-
3 名前: U D : 2005/06/07 12:46
- おっと、>>1の方が5分速かったようだ。
まぁ>>1のように辛口で言うこともできますが、
僕はとりあえず自分で作ってきたという努力を買いたいと思います。
確かにマルチポストはいけないですし、スクリプトオフの人への対処も気にはなりますが。。。
しかしめずらしく(?)"自分で作ろう"という意思を持った人が質問されていたので、
サンプル作ってそこにはあまり突っ込みませんでした。
ここに質問に来る人の多くは、自分であまり考えずに単に"どうすればいいの"と聞くだけだったので、
そういう風に自然に辛口になってしまうのも分かります。(僕も普段辛口ですし)
それと、この発言について。
>まあ,それほど難しい内容ではなさそうなので,頑張って下さい。
本人はこれを難しいと思っているから質問しているわけで、
>こんな難しいの誰かできるのかな・・・
しかも半分不可能だと思ってます。
これをばっさりと"そう難しくない"と言うのはどうかと。
確かにマルチポストですけどね。これじゃあんまりかと。
以上"意欲のあるのはいいことだ"という U D の自説でした。では失礼
-
4 名前: Pid : 2005/06/07 12:46
- >>3 UD さん,
> とりあえず自分で作ってきたという努力を買いたいと思います
うん,私もそうです。だからこそ他所にはタレ込まなかったわけで(私自身は,他の投稿先を明示するならマルチポストでも構わないとは思います−−ロ−カルル−ルで禁止されていない限りは)。ただ,確かに書き方がマズかったですね。反省します。
> ここに質問に来る人の多くは、自分であまり考えずに単に"どうすればいいの"と聞くだけだったので
うんにゃ,私はそんな風に思ったことは無いですよ。
質問者さんのスキルや状況に応じて,実際にコ−ドを書かせてみたり,完成サンプルを紹介したり,必要な知識をまず身に着けてもらったりしています(その判断が誤っている,という御批判は甘んじて受けますが (^^;))。
ただ,不特定多数の利用者が見込まれる Web ペ−ジ用 JavaScript の場合,なるべく細かい部分まで指摘してはいます。本人は辛口の自覚が無かったので,御指摘に感謝します。
> 本人はこれを難しいと思っているから質問しているわけで
いや,これは『こんな難しいの誰かできるのかな』と,うまい挑発の仕方(ちょっとニヤリとさせる)だったので,「そうでもないさ…」とニヒルに返そうと思ったわけで(ヘタクソですみません (^^;))。
-
5 名前: 美沙 : 2005/06/07 12:46
- みなさん返信ありがとうございました。今2UDさんのアドバイスを挑戦しておりますが、
わかりません・・・でもとことん調べてみます。あっこんな難しいの誰かできるのかなっていうのは挑発したわけでは・・・
-
6 名前: U D : 2005/06/07 12:46
- えっと、
>>2
に説明を補足。
ここからはスクリプト部分の一番上か下にでも追加してください。
var il = new Array()
il[0] = new Array("各画像のSRCを入れていってください")
il[1] = new Array("テクスチャ-POP","宇宙","自然")
il[2] = new Array("壁紙-風景写真","略","略")
function imgset(a,b){
a--;b--;
document.getElementById("I1").src=il[a][b];
//alert("["+a+"]["+b+"] | "+il[a][b]);
//↑は二次元配列の確認時等にコメントを外して使ってください
}
ここまで。
これはBODYの自分の好きな場所に入れてください。
<IMG src="image/test.gif" id="I1">
あとは>>1の【内容に関して】に注意して細部を作り変えてください。
それとこちらにもレスがついてます
http://otd8.jbbs.livedoor.jp/javascript/bbs_tree?base=14100&range=1
これも詳しく書かれていて参考になるので色々試してください
まぁまた出来なかったら気軽にどうぞ。(その時は詳細も詳しく)
では
-
7 名前: Toru : 2005/06/07 12:46
- >>3
でも、「マルチポストは禁止です。(削除の対象になります)」と
明文化されている掲示板で、必要以上に寛大になることもないんじゃないかな。
話を続けるのであれば、よそに移動した方がいいと思う。
ただ、俺も>>0を見て「自分でここまでやったのか」と感心したんだけど、
よそを見るとそうでもないのかな。
つまり、もし>>0が美沙氏自身で作ったものではない(メカニズムを理解していない)
となると、説明の仕方がだいぶ変わってくるような気がする。
# あまりあちこちに投稿すると、話の流れが分からなくなって
# かえって回答をもらえなくなるので、気をつけた方がいい>美沙氏。
-
8 名前: U D : 2005/06/07 12:46
- >>7
もちろんそれは分かっています。
ただ、この掲示板に意欲ある人が困って質問するというのを、
久しぶりに見たので、(もちろん自分が最近あまりこの掲示板を見ていない、というせいもありますが)
そういう人にはちゃんと対処してやりたいな、と思っただけです。
ちゃんと"自説"と書いてありますよね。
あくまでこれは"自説"故に、完全に正しいとは自分でも思っていません。
マルチポストはいけないからそこまで寛大にならなくていいと言われることも承知です。
ただ意欲ある人の意欲を低下させることだけは、いけないだろうということで。
(やる気なくしたらそのサイトにも来なくなるし、ホムペ作りもやめてしまうかもしれません)
僕がこういう人に寛大になるのにも色々背景が過去にあるわけで云々。(それ以上言いませんが)
ということで以上自説その2でした。では
P.S.
>(削除の対象になります)
そぉ、これ。
ちゃんと他の掲示板に移すとか、他の掲示板との連携を取るとか、
なにか対処しないとこのスレ削除対象ですからね。
早いとこ対処した方がいいです。
>美沙さん