アプリ版:「スタンプのみでお礼する」機能のリリースについて

ミスティーネットさんの「JavaScript 活用編 ポップアップメニューの表示」 の
サンプルを使ってみたのですが、
http://java.misty.ne.jp/popup_menu.html

DOCTYPE宣言を
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitio …

に変更すると、ポップアップが固定となり、同じところにしか表示されなくなります。
該当ページのサンプルは、XHTMLでは機能しないのでしょうか。
それとも、javascriptの記述をどこか変更すれば動くようになるのでしょうか。
詳しい方がおられましたら教えていただきたいのですが、よろしくお願いいたします。

A 回答 (2件)

ご提示のサンプルを追いかけてみましたが、問題はこの部分でした。



style='position:absolute;top:" + h + ";left:" + w + ";'

直すとしたらこのような感じ。数字の末尾に単位 px をつけています。

style='position:absolute;top:" + h + "px;left:" + w + "px;'

CSS で長さや位置を示す際は、必ず単位をつけなければならないのですが、
HTML は数値だけの場合はピクセル(px)を想定するようです。
が、XHTML は厳格に書式を指定しないとエラーとする、が信条ですので書式エラーと見なして無視されます。
ゆえに位置がみな同じところに表示される様でした。


それにしても、このサンプルの内容ですが...
正直いけてないので模倣するのは止めた方がよろしいかと思います。
ブラウザ互換性とか、もうちょっと汎用的に利用できるようにするとか...
というわけで jQuery とか如何ですか?
    • good
    • 0
この回答へのお礼

Ogre7077さん。
指摘された箇所を直したらうまく動作いたしました。
丁寧な解説ありがとうございました。

>正直いけてないので模倣するのは止めた方がよろしいかと思います。

なるほど、jQueryを使ったメニューはおしゃれなものが多いですね。
そちらのほうを探してみたいと思います。

お礼日時:2013/04/23 14:12

>DOCTYPE宣言を変更するとjavaが機能しない



あたりまえだ。JavaScriptをゼロからまなびなおすこと。と言うより、マークアップランゲージから学んだほうがいいでしょう。SGML , XML HTMLなどのことです。

それぞれのテキストの一章めを読めば、わかってしまうようなことです。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!