位置をシミュレート:jqueryで修正します
質問
使用できないようにページの幅よりも大きいヘッダーがあります position:fixed
彼をページの上に置くには、私は絶対に水平にスクロールできる必要があるからです。これにはCSSソリューションがあるとは思いません。
の効果を再現しようとするコードのサンプルを作成しました position:fixed
, 、しかし、望ましくないジャンプがあります。私のコードは次のとおりです。
$(window).scroll(function() {
var y = $(window).scrollTop();
$("#headertable").css('top', y+175);
});
それを本当に添付する方法はありますか position:fixed
? (不思議なことに、この「ジャンプ」効果がないため、FFよりもIEで現在表示されています)
ここで例を見つけてください: http://jsbin.com/eyuya/7. 。最初のテーブルはあります position:fixed
, 、もう1つは私のコードを使用します。それは、解決策がある場合に避けようとしているジャンプ効果です。
編集:
まだ満足のいくソリューションが見つかりませんでした。サイトはIEで使用されることを意図しており、ビューポートにDIVを取り付けるための奇跡の解決策が存在しないように思われます。水平方向にスクロールできます。誰かが以前にこの問題に遭遇した場合、私は賞金を始めて、良い解決策を見つけました。
すでにこれに答えようとした人々に感謝します。
解決
静的な位置付けられたDIVで要素をラップしてスクロールバーを取得し、ウィンドウスクロールを聞いて、固定ヘッダーに従って固定ヘッダーを配置できます。 scrollLeft
価値:
var elem = $('#headertable');
var win = $(window);
var wrap = $('<div>').css({
width: elem.width(),
height: elem.height()
});
elem.wrap(wrap);
win.scroll(function() {
elem.css('left', win.scrollLeft()*-1);
});
IE/FF/Chromeで動作しているようです:
他のヒント
ダミーのvisibililtyを作成できます。位置:固定要素の幅と同じ幅の隠された要素。これがサンプルです:
<html>
<head>
<script src="http://www.google.com/jsapi"></script>
<script>
google.load("jquery", "1.4.2");
google.setOnLoadCallback(function() {
$(document).ready(function(){
var dummy = $('<div>dummy</div>').width( $('#header').width() + 'px').css('visibility','hidden');
$('body').append(dummy);
});
});
</script>
</head>
<body>
<div id="header" style="width:2000px;background:red;position:fixed;top:0;height:20px;">
This is aheder with fixed position
</div>
<div style="height:1200px;background:green;">
</div>
</body>
</html>
http://fixedheadertable.com/demo/multipletablesdemo.html
代わりにこれを試してみてください:)
ラッパーdivを作成してから、divの幅を指定できます
例:幅:150%;または幅; 2000px;
要件に応じて
なぜスクロールする必要があるのですか?