2011-07-22 18 views
1

私はthickboxを開くリンク付きスクロール可能なページを持っています。 スクロールを隠す方法(オーバーフロー:隠し)?

私はThickBoxのが開かれたときに垂直スクロールを隠し、ページの下部に滞在したい

(例landme.ru/scroll-bug/を参照)。 'body'タグに 'overflow:hidden'プロパティを適用すると、ie7で が機能しません。

CSS:
一方私は、このようなコードを使用します。私は「HTML」タグにこのプロパティを使用する場合は、ページのコンテンツは、スクロールが

私の英語

UPDのため申し訳ありません

を非表示になります前に、スクロールアップ です .noscroll{overflow:hidden;}

JS:

if (($.browser.msie) && ($.browser.version == '7.0')) { 
    $('html').addClass('noscroll'); 
} else { 
    $('body').addClass('noscroll'); 
} 

それは動作しますが、Iまだ他の方法があれば知りたいです。

+1

私はあなたが望むものを見ますが、これは本当にユーザーにとって迷惑でしょう。私はあなたがなぜ彼らにスクロールできない、あるいはスクロールすることができるのかを伝えたいのかと尋ねるかもしれないと思います。私はスクロールバーが消えないようにしたいと思います。 –

+0

私は私の太い箱にたくさんの内容を持っています。そして、私は、すべてのページをスクロールする代わりに、太い箱の中でスクロールする必要があります。 –

+0

ビジネスロジックはここでは問題ではありません...ポスターをなぜこのようにしたいのかを知る必要がある本当の理由はありません:P –

答えて

0

okだから問題は高さにあります。折り返しに隠れたオーバーフローを指定することはできません。停止する場所が分からないからです。 divの "wrap"をposition:relativeのスタイル属性でラップします。高さ:100%;次に、オーバーフローのスタイルをラップします。高さ:100%;位置:絶対;

最後に、スクロールして下部に表示する必要があります。

document.getElementsByClassName("wrap")[0].scrollTop = document.getElementsByClassName("wrap")[0].scrollHeight 

、そこにあなたがそれを持っている:)ここ

テスト・ケース: http://jsbin.com/eguhuj#html

がスクロールバーのほんの少しはあるが、それは理由jsbinのです。単なるHTML文書では完璧に見えます。

EDIT:更新されたコード...これをテストして最初に動作するかどうかを確認してください...これをアンカー要素に配置できますか?

onclick="(function(){var blah = document.getElementsByClassName("wrap")[0]; 
document.getElementsByClassName("wr")[0].style.position = "absolute"; 
var meh = document.body.scrollTop; 
blah.style.overflow = "hidden"; 
blah.style.height = "100%"; 
blah.style.position = "absolute"; 
blah.scrollTop = meh;})();" 
+0

これはページのすべてのコンテンツを非表示にします(デモを参照)。 また、ページが単純に移動してはなりません。 必ずしもページの下部にあるわけではなく、リンクはページの真ん中にある可能性があります。 –

+0

ok ...私のバグを見つけました....私の編集を参照してください –

+0

上記のコードは奇妙な動作をします。 実行後にページをリロードします。 は一方私は、このようなコードを使用する: CSS: '.noscroll {オーバーフロー:隠された;}' JS: '(($の.browser場合。($ .browser.version == '7.0')){ $( 'html')。addClass( 'noscroll'); } else { $( 'body')。addClass( 'noscroll'); } ' これは機能しますが、他の方法があるかどうかはまだわかります –

関連する問題