- 締切済み
サファリでポジション指定のJavascriptがうまく作動しません
詳しい方ぜひお力をお借りしたいのですが。 以前IE用で教えていただいたオンマウスでボックスを中央に配置する スクリプトを教えていただいたのですが、Safariですとこれがうまく 作動してくれません。IEではどんなモニタの大きさでもど真ん中にいくのですが、Safariですと左に寄ってしまうのです。 これをSafariでも正常に機能させるにはどのような記述にすればよいのかを考えていましたがうまくいかないので質問させていただきます。 function show( text ) { var el = document.getElementById( "box" ); document.getElementById( "text" ).innerHTML = text; el.style.visibility = 'hidden'; el.style.display = 'block'; var width = el.clientWidth; el.style.display = 'none'; el.style.visibility = 'visible'; el.style.left = ( document.body.clientWidth - width ) / 2 + document.body.scrollLeft; el.style.top = ( document.body.clientWidth - width ) / 4 + document.body.scrollTop; el.style.display = 'block'; } function hide() { var el = document.getElementById( "box" ); el.style.display = 'none'; } で、 el.style.left = ( document.body.clientWidth - width ) / 2 + document.body.scrollLeft; el.style.top = ( document.body.clientWidth - width ) / 4 + この部分でIEでは問題ないのですが、Safariでは機能しません。 どうかお助けください。 よろしくお願いいたします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- himajin100000
- ベストアンサー率54% (1660/3060)
未検証。(XHTMLが示されていない。また,Safariに限定される話ではなく,FirefoxやOperaにも影響する話のはずだが,その点がかかれていないので自信がない) (( document.body.clientWidth - width ) / 2 + document.body.scrollLeft).toString() + "px"; とか単位つけてみたらどうだろう。
お礼
XHTMLなどはきちんと宣言していまして、上記のようにPXと単位を指定しましたところIE,SAFARI、OPERA,Firefoxできちんと同じように作動いたしました。ありがとうございました。 今後もこのような位置の指定などがある場合にはPXなどときちんと単位を指定していこうと思います。 アドバイスほんとうにありがとうございました。