• ベストアンサー

初心者なのにJAVAスクリプトを使うから!

HP作成初心者で、特にJAVAスクリプトに関しては赤子にも及びませんが助言して頂けたら幸いです。 まずいくつかの画像を、全部暗い感じにしてオンマウスでスポットライトがあたったように明るくなるような(フェードインする感じです)JAVAスクリプトを使いました。 そして同じ画像ににオンマウスで任意のテキストを表示させるJAVAスクリプトを使いたいのですが、やり方がよくわかりません… 個々には出来るのですが…(当たり前ですが;) そもそもHEAD間に2つJAVAスクリプトを書いていいかもよくわかっていませんし、 BODY間のその2種類のJAVAスクリプトを呼び出したい場所での書き方もよくわかりません。 自分なりに色々と調べてはみたのですが、答えが見つかりませんでした… 本当に初心者丸出しで、質問の意味もわかりにくいかとは思いますが、わかる方がいらっしゃいましたら是非教えて下さいませ<(_ _)>

質問者が選んだベストアンサー

  • ベストアンサー
  • peron
  • ベストアンサー率45% (43/95)
回答No.4

1)文字コードをとりあえず <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> にして下さいEUC-JPでは動きませんでした 2)スクリプトの途中の //--> を削除 var msg= new Array(); msg[0]="任意のテキスト1"; の前の行 3)<body bgcolor="#000000" text="#FFFFFF" link="#FFFFFF" vlink="#FFFFFF" alink="#FFFFFF"> <p><font color="#FFFFFF" size="2"><strong>どこが間違っているのでしょうか…</strong></p> までを削除 ※ <BODY>が2つあります 4)<div id="mesTxt"> </div> の部分を <DIV id="mesTxt" style="position: absolute; top: 300px; left: 30px;"> </DIV> に変更する ※ 画像の下に文字が表示されてしまう為 レイヤーの位置を指定してやる top: 300px; left: 30px; の300,30の部分を変更して目的の場所にして下さい これでいかがでしょうか とりあえず前作をメモ帳へコピペし、画像の指定と文字コードの指定をしてやってみてください IE6で動作確認しています (フィルターとDOMの解るブラウザな為) 何かありましたらご遠慮なくどうぞ

latin82
質問者

お礼

この度は親切丁寧に教えて頂きまして本当にありがとうございました。 これからは自分でも勉強して、質問に答えられる側に立てるように精進していこうと思います。 また調べてもわからず、打ちひしがれている自分を見つけたなら、そっと手を差し伸べて頂けると幸いです。 スーパーマンのようなperonさん、本当にどうもありがとうございました。 それでは失礼します。

latin82
質問者

補足

今まで自分でも色々試してやっていて、何度やってもランタイムエラーが出てきてしまっていました… そしてperonさんの言った通りに書き換えたってどうせ… なんて失礼にも思っていたのですが スパっと完璧に出来ちゃいました!有料かと思ってしまうほどの素敵なアドバイスを本当にありがとうございました!! それと、ついでと言ってはなんなのですが var msg= new Array(); msg[0]="任意のテキスト"; msg[1]="任意のテキスト"; ここの、任意のテキストの部分はフォントやら大きさやらカラーやらは変えられるのでしょうか? 自分で色々試してはいるのですが…変えられませんです。

その他の回答 (5)

  • togino
  • ベストアンサー率75% (97/129)
回答No.6

> document.getElementById("mesTxt").innerHTML=msg[i]; とありますので > msg[0]="任意のテキスト"; を msg[0]="<font color='red'>任意のテキスト</font>"; とすれば、赤色になると思いますよ。

latin82
質問者

お礼

今回、またまたど初心者ぶりをいかんなく発揮してしまいましたが、教えて頂いたサイトを血眼になって読んで勉強しようと思います。 初心者の自分にとっては全てのアドバイスが今後の為になりました。 この度は本当にありがとうございました。 調べてもわからず、また打ちひしがれている自分を見つけたなら、また助け舟を出して頂けると幸いです。 それでは、失礼します。

  • togino
  • ベストアンサー率75% (97/129)
回答No.5

ANo1 で補足要求した togino です。 もう peron さんが的確な回答をして頂いているので それで十分だと思いますが、少し latin82 さんが 苦しまれているようですので、アドバイスを。 HP 作成初心者には、ちょっと高度なスクリプトを ご利用のようです。大変なのは当然ですので、 お気になさらないよう、お願いします。 これらのプログラムは JavaScript の域を超えて DynamicHTML と呼ばれる技術に入りかけております。 DynamicHTML とは、HTML をブラウザの上で、動的に 自由自在に操作して、動きのある Web ページを作る 技術の総称です。 これを実現する為に、JavaScript やスタイルシート DOM (Document Object Model: 文書構造制御モデル) などが用いられます。 なので、初心者にはかなり難しいと思いますので まずは http://tohoho.wakusei.ne.jp/js/index.htm ここを読んでから http://tohoho.wakusei.ne.jp/www.htm にて「ホームページ入門」「ダイナミックHTML」 などをゆっくり読まれると、プログラムの意味が 分かると思います。 難しいですが、逆に理解されますと、びっくり するような HP を作ることも可能になり 楽しいものですよ。がんばってください (^^)

参考URL:
http://tohoho.wakusei.ne.jp/js/index.htm
  • peron
  • ベストアンサー率45% (43/95)
回答No.3

#2 追加情報 書き忘れです テキストエリアに表記出来ないのは、 document.getElementById("mesTxt").innerHTML の("mesTxt")はレイヤーを指していますので、 <div id="mesTxt"> </div> の空白のレイヤーにしか文字を表記出来ない為です ここに入る文字はinnerHTMLの中途半端な性格上 テキストと<BR>タグぐらいです リンクには使えません 読み込んだ状態でテキストエリアを表示するのであれば、<FORM>以下を記入しても良いですが、画像にさわると とたんにテキストになってしまいます

latin82
質問者

補足

色々ご親切に教えて頂き本当にありがとうございます。 しかし、言われた通りにやってみたつもりなのですがランタイムエラーになってしまいます。自分の書いたどこかの記述が間違っているようです…JAVAスクリプト以外の所が間違っているのかもしれないと思い、教えて頂いたJAVAスクリプトだけのページをメモ帳で作りましたがやはりランタイムエラー(∵がありません)が起きました。 自分ではどこが間違っているか検討もつきません… どこが間違っているかわかるようでしたら、是非教えて下さい。 <html> <HEAD> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=EUC-JP"> <title>間違い探し</title> <STYLE type="text/css"> <!-- A:link {text-decoration:none} A:visited {text-decoration:none} A:active {text-decoration:none} A:hover {color:#FFFFFF; position:relative; top:1; left:1} --> </STYLE> <SCRIPT type="text/javascript"> <!-- lo=["rm1","rm2"]; ve=Array(); for (i=0; i<lo.length; i++) ve[i] = 0; lowAlpha = 30; function RM(){ for (i=0; i<lo.length; i++){ n=eval(lo[i]).filters["alpha"].opacity + ve[i]; if (n > 100) n = 100; if (n < lowAlpha) n = lowAlpha; eval(lo[i]).filters["alpha"].opacity = n;}} function setFade(tID,n){ for (i=0; i<lo.length; i++) if (lo[i] == tID) ve[i] = n;} //--> var msg= new Array(); msg[0]="任意のテキスト1"; msg[1]="任意のテキスト2"; function msgOn(i){ if (document.getElementById){ document.getElementById("mesTxt").innerHTML=msg[i]; } else { document.f1.msgtxt.value=msg[i]; } } function erase(){ if (document.getElementById){ document.getElementById("mesTxt").innerHTML=""; } else { document.f1.msgtxt.value=""; } } window.onload=erase; //--> </SCRIPT> </HEAD> <body bgcolor="#000000" text="#FFFFFF" link="#FFFFFF" vlink="#FFFFFF" alink="#FFFFFF"> <p><font color="#FFFFFF" size="2"><strong>どこが間違っているのでしょうか…</strong></p> <body onLoad="setInterval('RM()',10)"> <img src="画像URL" width="190" height="190" id="rm1" style="filter:alpha(opacity=30);" onMouseover="msgOn(0),setFade(this.id,5)" onMouseout="erase(),setFade(this.id,-5)"> <img src="画像URL" width="190" height="190" id="rm2" style="filter:alpha(opacity=30);" onMouseover="msgOn(1),setFade(this.id,5)" onMouseout="erase(),setFade(this.id,-5)"> <div id="mesTxt"> </div> AAA </body> </html>

  • peron
  • ベストアンサー率45% (43/95)
回答No.2

このままだとレイヤー上のテキストエリアには何も記入されませんので、テキストエリアを省略します <HEAD> <SCRIPT type="text/javascript"> <!-- lo=["rm1","rm2"]; ve=Array(); for (i=0; i<lo.length; i++) ve[i] = 0; lowAlpha = 30; function RM(){ for (i=0; i<lo.length; i++){ n=eval(lo[i]).filters["alpha"].opacity + ve[i]; if (n > 100) n = 100; if (n < lowAlpha) n = lowAlpha; eval(lo[i]).filters["alpha"].opacity = n;}} function setFade(tID,n){ for (i=0; i<lo.length; i++) if (lo[i] == tID) ve[i] = n;} var msg= new Array(); msg[0]="任意のテキスト1"; msg[1]="任意のテキスト2"; function msgOn(i){ if (document.getElementById){ document.getElementById("mesTxt").innerHTML=msg[i]; } else { document.f1.msgtxt.value=msg[i]; } } function erase(){ if (document.getElementById){ document.getElementById("mesTxt").innerHTML=""; } else { document.f1.msgtxt.value=""; } } window.onload=erase; //--> </SCRIPT> </HEAD> <body onLoad="setInterval('RM()',10)"> <img src="画像" width="190" height="190" id="rm1" style="filter:alpha(opacity=30);" onMouseover="msgOn(0),setFade(this.id,5)" onMouseout="erase(),setFade(this.id,-5)"> <img src="画像" width="190" height="190" id="rm2" style="filter:alpha(opacity=30);" onMouseover="msgOn(1),setFade(this.id,5)" onMouseout="erase(),setFade(this.id,-5)"> <div id="mesTxt"> </div> </body> これをコピペして、画像の部分に画像のURLを入れて試してみてください ※ <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> も<HEAD>に忘れずに タグの大文字、小文字がばらばらになっています 私はタグを大文字で書くため、申し訳ないですが変更してください(動作には支障がありません) 

  • togino
  • ベストアンサー率75% (97/129)
回答No.1

> そもそもHEAD間に2つJAVAスクリプトを > 書いていいかもよくわかっていませんし 別にかまいませんよ <html><head> <script type="text/javascript"> <!--  ~~ここにフェードインするスクリプト~~ // --> </script> <script type="text/javascript"> <!--  ~~ここにテキストを表示させるスクリプト~~ // --> </script> </head> まったくかまいません。 しかし、2つの間で同じ関数名や変数名を使っている場合 片方の名前を変えてあげたりする作業が必要になる 場合もあります。 > BODY間のその2種類のJAVAスクリプトを > 呼び出したい場所での書き方 例えば、フェードインする側で <img src="hogehoge.jpg" onMouseOver="FadeIn()"> テキストを表示する側で <img src="hogehoge.jpg" onMouseOver="DisplayText()"> となっている場合 <img src="hogehoge.jpg" onMouseOver="FadeIn();DisplayText()"> のようにまとめることが可能です。 しかし、お互いが干渉しあうことがあるので、その場合 どちらかのプログラムを少し修正する必要があるかも しれません。 あとは、具体的にそのプログラムを見せて頂けますか? スクリプトの内容によって、簡単に出来たり出来なかったり するものですから。

latin82
質問者

補足

おぉこんなに早くに的確なご解答をして頂き、本当にありがとうございます。以下がプログラムです。 1)オンマウスで透過していた画像が戻るJAVAスクリプト ヘッダー <script language="JavaScript"> <!-- lo=["rm1","rm2"]; ve=Array(); for (i=0; i<lo.length; i++) ve[i] = 0; lowAlpha = 30; function RM(){ for (i=0; i<lo.length; i++){ n=eval(lo[i]).filters["alpha"].opacity + ve[i]; if (n > 100) n = 100; if (n < lowAlpha) n = lowAlpha; eval(lo[i]).filters["alpha"].opacity = n;}} function setFade(tID,n){ for (i=0; i<lo.length; i++) if (lo[i] == tID) ve[i] = n;} //--> </script> ボディー <body onLoad="setInterval('RM()',10)"> <img src="画像参照先" width="190" height="190" id="rm1" style="filter:alpha(opacity=30);" onMouseover="setFade(this.id,5)" onMouseout="setFade(this.id,-5)"> <img src="画像参照先" width="190" height="190" id="rm2" style="filter:alpha(opacity=30);" onMouseover="setFade(this.id,5)" onMouseout="setFade(this.id,-5)"> </body> 2)オンマウスで任意のテキストを出すJAVAスクリプト ヘッダー <script type="text/javascript"><!-- var msg= new Array(); msg[0]="任意のテキスト"; msg[1]="任意のテキスト"; function msgOn(i){ if (document.getElementById){ document.getElementById("mesTxt").innerHTML=msg[i]; } else { document.f1.msgtxt.value=msg[i]; } } function erase(){ if (document.getElementById){ document.getElementById("mesTxt").innerHTML=""; } else { document.f1.msgtxt.value=""; } } window.onload=erase; //--></script> ボディー <body> <a href="#" onClick="return false;" onMouseover="msgOn(0)" onMouseout="erase()"><img src="画像参照先 "width="190" height="190" alt="画像0"></a> <a href="#" onClick="return false;" onMouseover="msgOn(1)" onMouseout="erase()"><img src="画像参照先" width="190" height="190" alt="画像1"></a> <div id="mesTxt"> <form name="f1"> <textarea rows="5" size="40" name="msgtxt"></textarea> </form> </div> </body> 自分でJAVAスクリプトを調べている時にいつも関数、変数の所は飛ばしていました; 今度からじっくり読んでみようと思います。

関連するQ&A

  • JavaとJavaスクリプトの違い

    JAVAの通信教育を受けるのですが、 JAVAとJAVAスクリプトは同じものだと思ってました。 画像や文字をスクロールさせたりするソースが、 JAVAだと思ってました。 JAVAとJAVAスクリプトの違い、JAVAとは何か分かり易く教えてください。

    • ベストアンサー
    • Java
  • JAVAスクリプト

    現在ホームページ作成中です。 そこでページ内の一部分がJAVAスクリプトで写真が自動で切り替わり 切り替わるときにフェードアウト、フェードインし、かつ、ループしないで、6枚の写真表示を した後、6枚目で写真が止まり、フェードアウトし写真表示部分が白一色になったときに 下の重なってるバックグラウンド画像が出てこないようにしたいです。 また、対応するのもIEだけでなくファイヤーフォックス等にも全て対応している JAVAスクリプトソースを教えてください。 面倒な質問ですが、お助けください。よろしくお願いします。

  • ブログ上で複数のjavaスクリプトから2つのjavaスクリプトをランダムに表示させたい

    ブログ上に、複数のjavaスクリプトからランダムに2つのjavaスクリプトを選んで表示させたいのですが、コードがわからないので教えていただきたいです。選ばれた二つは被らないようにしたいです。 使用したいjavaスクリプトのコードは <script type="text/javascript" charset="euc-jp" src="○○1"></script> <script type="text/javascript" charset="euc-jp" src="○○2"></script> <script type="text/javascript" charset="euc-jp" src="○○3"></script> のようになっています。 javaを使って画像や文字をランダムに表示する方法はあったので応用しようとしたのですがうまくいきませんでした。 よろしくお願いします。

  • Java Scriptの書き方について教えて下さい。

    Java Scriptの書き方について教えて下さい。 独学なので超初歩的な質問ですが、Java Scriptを外部ファイルにしたいと思っておりますが、外部ファイルには何を記述し、(<head></head>、<body></body>)の中には何を書いたらよくかわかりません。 現在はタグの中にスクリプトを記述しています。あるいは意味も判らずにコピペしています。 初心者にも判りやすい参考書かサイトをご存じでしたら教えて下さい。 宜しくお願い致します。

  • CGIの中にJAVA Script

    CGIプログラムはまったくの初心者です。 perlでCGIプログラムを組んで、HTMLを書き出すときに Java Scriptもいっしょに書き出すことはできますか? print "Content-type: text/html\n\n"; print "<html><head><title>$title</title>\n"; ---この間に入れたいのですが・・・--- print "</head>\n"; print "<body topmargin=0 leftmargin=0 marginheight=0 marginwidth=0 bgcolor=$bg_color text=$text_color link=$link_color vlink=$vlink_color background=$bg_gif>\n"; Java Scriptの menu_0.addMenuItem("ショップ案内","location='shop.html'"); 等を入れるときに 「"」や「;」はどういう風に表現すればうまくいくのでしょうか。 Java Script以外のタグの中の<font size="2">などは「"」をとれば 大丈夫なのは知っていますが、Java Scriptで「"」や「;」をとってしまうと 動作しなくなりました。

  • 同一ページに複数の異なるJAVAスクリプトは?

    トップページに複数の異なるJAVAスクリプトを配置することは可能でしょうか? トップページにJABVAスクリプトでドロップダウンメニューを配置しております。 このたびアクセス解析をしようと思い、FC2のアクセス解析タグをBODY間に配置したところ、JAVAスクリプトが無効とのエラーが出てしまいました。 JAVAスクリプトの干渉かもしれませんが、解決方法が分かりません。 なにかうまい方法はないでしょうか?

  • JAVA SCRIPTでこういうのってできますか?

    JAVA SCRIPTでこういうのってできますか? まず、メインページに「こちらをクリック」という画像に htmlの画像リンクをマップを利用してリンクを貼ります。 で、そこをクリックすると、BLANKして小さい画像が 左上に開く、ポップアップウィンドウのような、、。 どうやるんでしょうか?メインページにボディとヘッドに なにかタグを入れるのでしようか?

  • Java Scriptのロールオーバについて

    現在ホームページを作成しています。 メニューボタンをJava Scriptのロールオーバで画像を変えたいのですが、1つの画像をオンマウスすると2つの画像が同時に変わるということはできますか?

  • 初心者です。画像の奇麗に切り替わるサイトが作りたいです。

    初心者です。画像の奇麗に切り替わるサイトが作りたいです。 dreamweaverで自力でサイトを作っています。 オンマウスでpng画像が切り替わらるのはできたのですが、 メイン画像などが自動に切り替わるようにするにはどうしたらよいかわかりません。 メイン画像は、今のところ、背景画像の上に重なっており、角丸で、PNG形式です、 フラッシュも、javaもまるで初心者の私にはまだ無理でしょうか? また、長方形で美しくフェードアウトしながら切り替わるJPEGは、 どのようにしたらよいでしょうか? 参考サイト、書籍などあれば教えていただきたいです。

  • jQueryを使ったロールオーバーについて

    初めまして。Webサイト作成の初心者です。 JQueryを使って、フェードエフェクト効果のあるロールオーバーを作成したいと思っております。 例えば次のサイトでは、若干フェードエフェクト効果のあるロールオーバーとなっておりますが、ソースを見るとbody内にはオフマウス用の画像だけが記されております。 http://mizuame.sakura.ne.jp/jquery.tgImageRollover/demo/script2.html オンマウス用の画像への切り替えはCSSで行っているのでしょうか? ちなみに、グローバルメニューなどでは、オフマウス用とオンマウス用の画像を一つにし、CSSで座標を調整することで、ロールオーバーをすることが多いと思いますが、この方法だとJQueryを使ってロールオーバーにフェードエフェクト効果を付けることはできないのでしょうか? それとも、やはりロールオーバーにフェードエフェクト効果を付けるには、オフマウス用の画像とオンマウス用の画像を、それぞれ用意し、オフマウス用の画像はHTMLに記述し、オンマウス用の画像はCSSに記述するのでしょうか? どのような回答でもお受けしたい所存で御座いますので、どうか宜しくお願い致します!!

専門家に質問してみよう