1. 程式人生 > >移動端彈出視窗後,底層還能滑動問題的解決

移動端彈出視窗後,底層還能滑動問題的解決

        開始用layer去彈窗,發現底層能滑動了這個問題。於是懷疑是不是layer的問題,然後嘗試自己寫一個彈窗,最後結果是一樣的,滑動彈出層的時候,當頂層無法滑動的時候底層就也會滑動。

        最後的解決辦法是當彈出視窗時,把底層的position設定成fixd,這時底層會回覆到最頂端,然後用動態設定css的top,設定成負的剛才滾動條的位置,然後滑動時底部怎麼都不會移動了,最後在彈出層關閉的時候把剛才賦值的position fixd去掉,然後將剛才滾動條的位置恢復。上程式碼。

.flexd{
	position: fixed;
	width: 100%;
}
var scrollTop = $(document).scrollTop();//獲取當前滾動條位置
$("body").addClass("flexd");//設定絕對定位,此時不操作的話底層頁面回到最初位置
$("body").css("top",-scrollTop);//設定top屬性確保螢幕顯示滾動條的當前位置

//彈層
var alert = layer.open({
	type: 1,
	content: $("#layerContent").html(),
	anim: 'up',
	style: 'position:fixed; bottom:0; left:0; width: 100%; height: 490px; padding:0px 0; border:none;',
	end:function(){

		//彈層關閉時執行的語句
		$("body").removeClass("flexd");//取消絕對定位
		$("body").scrollTop(scrollTop);//滾動條回到停留位置
	}
});

至此問題完美解決