スクロールしても一緒についてくる、
ページのTOPへ戻るというリンクをつけたいのですが、
IEの環境でうまく動作しません。
(クロムやfirefoxではうまく動きました。)
イメージとしては、下記のページにあるようなリンクです。
http://www.tokyometro.jp/index.html
何が原因なのか分からないです。
■HTMLファイル
<!-- /pagetopComp -->
<div id="pagetopComp">
<p><a href='#' onclick='backToTop(); return false'><img src="/s/top/images/up.png" alt="ページトップへ" width="36" height="120"/></a></p>
</div>
<!-- /pagetopComp -->
■CSSファイル
#pagetopComp {
width:36px;
height:120px;
position:fixed;
bottom:50px;
right:0;
z-index:999;
}
* html #pagetopComp {
position:absolute;
margin-top:expression(0 - parseInt(this.offsetHeight / 2) + (document.documentElement && document.documentElement.scrollTop || document.body.scrollTop) + 'px');
margin-left:expression(0 - parseInt(this.offsetWidth / 2) + (document.documentElement && document.documentElement.scrollLeft || document.body.scrollLeft) + 'px');
}
どこを修正すべきなのかとか、こういう方法がいいよなど
何でもかまいませんのでご教授ください。
お願いします。
No.3ベストアンサー
- 回答日時:
素朴な疑問があります。
そのCSSの最後のコード、プログラム言語だと認識されておりますでしょうか?
そしてそれを使える様にHTML側のhead内のmetaで設定していますでしょうか?
恐らくJavaScriptだと思うんですが
<meta http-equiv="Content-Script-Type"content="text/javascript" />
これが無いとJavaScriptをHTML内部で使えません。
すごいです!!
<meta http-equiv="Content-Script-Type"content="text/javascript" />
入れたら動きました!!
meta、書かないと動かないって知りませんでした。。
本当にありがとうございます!!
No.6
- 回答日時:
* html #pagetopComp {
position:absolute;
top: 80%; /*** 追加 ***/
bottom: auto; /*** 追加 ***/
margin-top:expression(略 + 'px');
margin-left:expression(略 + 'px');
}
これでどうでしょうか。
margin-topとmargin-leftが期待値通りなのかどうかちょっとわかりませんが、、、
bottomとmargin-bottomで調整も出来そうですが、そっちはパス。。。
No.5
- 回答日時:
仕様的なことを言うと、IE6で要素固定(position:fixed)ができないのは正常です。
逆に言うと、IE6以外の概ねのPCブラウザは、CSSだけで簡単に要素固定ができます。
で、IE6でなんとか要素固定を実現しようとした結果、IE独自機能のexpressionを使う方法が生み出されたわけです。
なぜこんなことを書いているのかというと、HTML&CSSを知る人間からすると、「IEで要素固定ができない」は、前述の理由よりIE6のことだと認識してしまうわけですが、そもそも「IEで動かない」というのは、ほんとうにIE6のことなのかどうか疑わしいからです。
もしIE6でなかったとすると、先にでている回答者さんの善意はほぼ意味をなしません。
IEに限らず、確認したブラウザバージョンくらいは書いたほうがよいのではないでしょうか。
マナーとかモラルなどという言葉は使いたくありませんが、自分が質問されたとすると「自分はどこまで知っていて、どこからがわからない」とか「どういう環境でテストした」とかあったほうが、回答する人間は応えやすいと思いませんか?
No.4
- 回答日時:
<?xml version="1.0" encoding="UTF-8"?>
↑ XML宣言無しにしたらどう?
ちなみに、CSSだと。
body{ margin:0; padding:0;}
#pagetopComp {
width:36px;
height:120px;
position: fixed !important;
position: absolute;
bottom:50px;
right:0 !important;
right: 16px;
z-index:999;
}
* html{ overflow: hidden;}
* html body { height:100%; overflow-y:scroll;}
#pagetopComp a img{ border:0;}
No.2
- 回答日時:
すいません、それだけじゃ無理でしたか…。
東京メトロのサイトのソースコードをぱくるのが一番手っ取り早いんでしょうけど、
今ちょっとそこまで見てられないので、この前使った記述を書いておきます。
body {
background:url(null) fixed;
height: 100%;
}
#pagetop{
position:fixed;
bottom:0px;
right:0px;
height:100%;
/* forIE */position: expression('absolute');
/* forIE */top: expression(documentElement.scrollTop + 0 + 'px');
}
#pagetop a{
position: absolute;
bottom: ○○px;
right: ○○px;
}
で、pagetopのブロックを一番最後(</body>の前)に記述します。
全体を囲んでるdivの外に書く必要があったと思います。
私の場合はこれで出来ました。
これもどこかから拝借してきたソースですが。
この回答への補足
やっぱりうまくいきませんでした、、
■CSS
#pagetopComp {
width:36px;
height:120px;
position:fixed;
right:0;
z-index:999;
top:80%;
}
* html #pagetopComp {
position:absolute;
margin-top:expression(0 - parseInt(this.offsetHeight / 2) + (document.documentElement && document.documentElement.scrollTop || document.body.scrollTop) + 'px');
margin-left:expression(0 - parseInt(this.offsetWidth / 2) + (document.documentElement && document.documentElement.scrollLeft || document.body.scrollLeft) + 'px');
}
bottom:50px; ⇒ top:80%;と、変更したらIE7、IE8ではきちんと
スクロールに画像がついてきてくれるようになりました!
ただ、IE6だけがスクロールしても画像がついてきません、、
他に対応方法があるのでしょうか??
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript 画像の表示位置 3 2022/12/23 08:25
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/30 09:10
- JavaScript スマフォではボタンを表示させたくない 2 2023/01/20 14:26
- HTML・CSS ヘッダーの画像にメインエリアがかぶってしまいます 1 2022/11/28 14:06
- HTML・CSS html/cssで要素が出てこなくて困ってます 1 2022/12/31 16:59
- HTML・CSS cssが効かなくて困ってます 1 2023/01/01 23:57
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- JavaScript vertical sliderをautoplayしたい 2 2022/08/25 14:47
- HTML・CSS 書籍を見つつサイト造りの練習をしているのですが、見た目が一致しません 2 2022/11/28 15:00
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
htmlの文字が縦書きになる
-
W3Cのソースコードの検証サービ...
-
CSS、width100%でもできる余白
-
widthやheightの数値に単位(px...
-
CSSで3分割した背景画像を配置...
-
z-indexで上になっている要素だ...
-
Media Queries 4 で 非推奨とな...
-
CSSでボックスのheightが0になる
-
div内に外部のurlを表示させたい
-
CSS上での計算を行うためのルー...
-
form input テキストを上下中央...
-
CSSでborderの長さを指定、また...
-
<li>の黒い点を消したい。
-
FC2ショッピングカート 写真の...
-
border-style:solidで文字がずれる
-
CSSでborderの指定を解除する記...
-
CSSがなぜかfont-sizeだけ効か...
-
WEBサイト作成:初心者です...
-
画像リンクの下に文字を付けた...
-
CSSと<dl><dd>で間隔をあけて1...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
htmlの文字が縦書きになる
-
widthやheightの数値に単位(px...
-
css初心者 フレックスボックス...
-
form input テキストを上下中央...
-
<div>と<div>の間の10px程の...
-
CSSがなぜかfont-sizeだけ効か...
-
divで囲まれたpaddingの指定を...
-
表示倍率を変えるとレイアウト...
-
画像イメージの上下左右、欲し...
-
CSS、width100%でもできる余白
-
cssで中央寄せ
-
CSS:animation開始位置の設定
-
スクロールボックスを中央に配...
-
CSSで背景画像を一番下にもって...
-
【CSS】ヘッダーの高さが不明の...
-
初心者html・CSS ウィンドウを...
-
footer を横幅いっぱいに広げる...
-
CSSで指定した背景画像にリンク...
-
div領域をウインドウサイズに合...
-
W3Cのソースコードの検証サービ...
おすすめ情報