html 彈出模態視窗 控制背景層不能滾動

2021-08-28 01:36:32 字數 876 閱讀 7783

第一種方案

這個方案比較簡單,適用彈出視窗內也沒有內容需要滾動的時候

1 即在彈出視窗的時候 給body繫結 mouchmove事件 阻止響應

$("body").on('touchmove',function(event) , false);

2 關閉彈出層的時候解綁事件

$("body").unbind('touchmove');

第二種方案

這裡相對複雜一些,適用於彈窗裡有內容需要滾動的時候

彈窗時1 彈窗的時候先獲取 當前滾動條滾動的 offset值

var topn = -($("body").scrolltop());//獲取滾動的位置

2 給body層加css屬性 position 設定為 fixed固定的

$("body").css('position', 'fixed');

這時候背景層已經不能滾動了,但是背景層的滾動條已經回滾到頂部位置,所以這裡需要第三步

3 $("body").css('top', topn);//

設定top值,使頁面相當於滾動了,這時候的顯示情況恢復到彈窗前的樣子

關閉彈窗時

1 獲取彈窗時設定的 body 的css屬性 top值

var scrolltop = parseint($("body").css('top').replace('px',''));

2 body的 position屬性恢復 這時候頁面會跳回頂部

$("body").css('position', '');

3 $("body").css('top', 0); top值設為0

4 $("body").scrolltop(-scrolltop);//滾動滾動條,頁面不會跳回頂部

ok 搞定

vue js modal 模態彈出視窗

基於vue實現的modal視窗,單獨元件,方便使用,還很美觀 vue js modal github vue js modal example 使用終端在專案根目錄執行以下指令碼後,package.json 的dependencies中會出現vue js modal x.x.xx的依賴 npm i ...

JS控制彈出視窗

一 基本變化 引數解釋 window.open 彈出新視窗的命令 page.html 彈出視窗的檔名 newwindow 彈出視窗的名字 不是檔名 非必須,可用空 代替 100 視窗高度 width 400 視窗寬度 top 0 視窗距離螢幕上方的象素值 left 0 視窗距離螢幕左側的象素值 no...

模態視窗(彈出框)整合CKEditor實戰

需求背景 電子合同專案下的合同模板新增頁面中是用layer.js實現的彈出框,也叫模態視窗,用之前的summernote文字編輯器不符合當前編輯合同文字內容的需求 1 字型大小2 字型顏色3 動態 4 字型加粗 所以在第二個小版本中調研了ckeditor ueditor,ueditor也能滿足只是定...