ページのスクロールをロックおよびロック解除する関数を作成しました。style
コア メカニズムは、HTML の属性とscrollTop
プロパティを保存しscrollTop
、0 に変更し、保存したものをネガティブ CSS として適用することに依存scrollTop
しています。top
position: fixed
このデモ でわかるように、すべてが満足のいくように機能しています (いくつかの特殊なケースを考慮して) 。
scrollTop
問題は、IE8 以下では、 138 行目から 144 行目で、ロック解除中にスタイルとプロパティの復元の間にちらつきがあることです。
// Revert styles
$html.attr( 'style', $( '<x>' ).css( prevStyles ).attr( 'style' ) || '' );
// Revert scroll values
$( window )
.scrollLeft( prevScroll.scrollLeft )
.scrollTop( prevScroll.scrollTop );
ぎくしゃくしたフレーム レートと処理の遅さで知られるブラウザが、Javascript の連続する行の間にページを再描画するための時間とリソースを見つけていることに驚いています。
これら 2 つのステートメントの間で IE がページを描画しないようにするにはどうすればよいですか?