モバイル側スクロールスルーの問題解決策
1207 ワード
に質問
移動端fixedマスクバックグラウンドとポップアップレイヤがある場合、画面上で背景の下の内容をスライドさせることができます.
シナリオ1
まず私たちは
//
$("html,body").css({"overlow":"hidden"});
//
$("html,body").css({"overlow":"auto"});
PC端では機能しているが,移動端ではまだだめで,マスクの下を転がすことができることが分かった.overflowは移動端で無効です.
シナリオ2
touchmove preventDefault
ポップアップレイヤ自体にスクロールバーがあると、ポップアップレイヤがスクロールできなくなります.ポップアップレイヤ自体がスクロールする必要がない場合に適用されます(バー).
シナリオ3
ポップアップ・レイヤ自体をスクロールする必要がある場合、2つのツール・メソッドがあります.
//
fixedBody:function(){
var scrollTop = document.body.scrollTop || document.documentElement.scrollTop;
document.body.style.cssText += 'position:fixed;top:-'+scrollTop+'px;';
},
//
looseBody:function() {
var body = document.body;
body.style.position = '';
var top = body.style.top;
document.body.scrollTop = document.documentElement.scrollTop = -parseInt(top);
body.style.top = '';
}
ポップアップレイヤが表示される前に、現在のスクロール位置を記録し、bodyをドキュメントストリームから離れ、ドキュメントストリームから離れたbodyを引き上げる.フレームレイヤを閉じると、bodyをドキュメントストリームに戻し、古い場所に戻ります.