1. 程式人生 > >手機端浮層彈窗阻止介面滾動

手機端浮層彈窗阻止介面滾動

今天遇到了一個手機端浮層彈窗的需求

浮層彈窗

要實現這個彈窗效果不麻煩,麻煩的是實現了這個效果之後只讓浮層裡面的內容滑動而不讓底下的內容滑動。

我從網上搜到的實現方法,據說也是bootstrap的實現方法:當彈窗的時候將body的overflow樣式設定為hidden

$("body").css("overflow","hidden");

你發現瀏覽器上沒有問題了,可如果只到了這一步事情遠遠沒有解決。如果你能夠區域網訪問,你會發現在手機上浮層底下的內容依然會動。我想到了使用這種方式解決:

1.獲取出現浮層時介面滾動的距離和記錄浮層狀態

var scrollTop=document.body.scrollTop||document
.documentElement.scrollTop; var modelToggle=true;

2.使用onscroll監聽介面的滾動

window.onscroll=function(){
    if(modelToggle){//判斷是否已經打開了浮層
        $("body").css("top",scrollTop);//設定介面滾動的位置一直是浮層開啟的位置
    }
}

3.如果這個時候你的介面還是有問題你可以嘗試著給你的body的css樣式設定一些初始值

body{
    position:fixed;
    top:0;
    overflow:auto;
}

希望能夠幫到你。

相關推薦

手機阻止介面滾動

今天遇到了一個手機端浮層彈窗的需求 要實現這個彈窗效果不麻煩,麻煩的是實現了這個效果之後只讓浮層裡面的內容滑動而不讓底下的內容滑動。 我從網上搜到的實現方法,據說也是bootstrap的實現方法:當彈窗的時候將body的overflow樣式設定為hidd

跳出頁面禁止滾動(PC手機

pc端如何實現 1.當彈窗顯示時,為body元素新增屬性:overflow:hidden, 當關閉彈窗時移除該屬性即可2.在彈窗的div上設定 @scroll.stop.prevent <div @scroll.stop.prevent> 你要顯示的內容 </d

手機虛擬鍵盤出使介面佈局混亂解決方法

html5頁面當點選input輸入框彈出安卓手機上鍵盤就會把背景頂了上來,軟鍵盤彈出時,改變了height,使height:100%,不能達到原來的高度。 頁面佈局就亂了,解決方法: 原生js: window.onload=function(e){ var _b

layer多出現滾動

我們在用layer彈窗的時候,如果是多層彈窗,會發現第一層彈窗關閉按鈕沒問題, 但是第二層彈窗,或者第N層彈窗,就會出現因為關閉按鈕溢位導致出現滾動條的問題,如下圖: 那麼如何解決呢? 其實,有一種很簡單的解決方案,那就是設定title屬性: 將title屬性由fals

Android開發丶使用DialogFragment完成炫酷的登入介面並完成DialogFragment與宿主Fragment的通訊

在上篇文件中,我主要記錄了通過介面回撥實現了DialogFragment與宿主Acitivity的通訊,但是在實際開發過程中,登入介面往往是從“我的”這個Fragment開啟的,這裡發現介面回撥不是很好用,查閱了很多文件,都沒有很好的解決辦法,因此,怎樣把輸入的賬戶名和密碼由

vue-cli 單頁面手機應用input點選手機虛擬鍵盤出蓋住input

在用vue-cli腳手架搭建手機H5頁面應用的時候,其中一頁中部有input,底部有position:absolute;bottom:0的元素, 當點選input框時在安卓手機上出現了: 1 虛擬鍵盤彈出蓋住input 2 底部定位的元素被擠上來 網路上很多關

推薦firefox元件:廣告阻止外掛

推薦一個外掛,可以阻止廣告彈窗:https://addons.mozilla.org/en-us/firefox/addon/adblock-plus/ 煩人的廣告,把訪客當成了弱智一樣。雖然自己是一個站長,但是最反感去訪問某些網站,一進入,滑鼠不小心動了一下,就彈窗那種

h5頁面 在安卓手機軟鍵盤出頂起頁面佈局的解決辦法

var oHeight = $(document).height();     $(window).resize(function(){ //ios軟鍵盤彈出不會觸發resize事件         if($(document).height() < oHeight){             $("#

移動h5頁面出來後,禁止底層的背景頁滾動

先看圖: 再需求和解決方法: 1.需求:在一個可上下滑動的h5-index.html中,彈出一個固定於裝置高度的獎勵層。當獎勵層彈出來之後:1.index頁面不能出現滾動條,2.index不能自動置頂,要停留在觸發事件的位置。 2.解決方法:

jquery遮罩程式碼

<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>jQuery彈出層效果</title> <meta cont

Ionic3學習筆記(九)關於 Android 軟鍵盤出後介面被壓縮的問題

本文為原創文章,轉載請標明出處 今天做了一個如下圖所示的頁面。 iOS 端毫無 bug,Android 端卻出現了問題。當軟鍵盤彈出後,Android 端的 tabs 移到了軟鍵盤的上面,再仔細一看,整個介面都被壓扁了,輸入框也不知道去哪兒了。 於是去

解決手機自適應頁面出現 X軸滾動條問題

最近在用 Bootstrap 寫一個需要適配 WEB 和 WAP 的網站,寫完後發現 WAP 端總是會出現橫向滾動條,也就是 X 軸滾動條,導致 WAP 端頁面左右滑來滑去,很是令人蛋疼,即使設定了 overflow-x: hidden 也無法去除,通過各種途徑尋找解決方法,最終在 張鑫

JS-設定時候禁用滾動

方法一 啟用禁用時,設定js document.documentElement.style.overflowY = 'hidden'; 當還原時候,只需要把屬性重置scroll就可以了 document.documentElement.style.overflowY = 'sc

小程式禁止頁面滾動

彈出 fixed 彈窗後,在彈窗上滑動會導致下層的頁面一起跟著滾動。 解決方法: 在彈出層加上 catchtouchmove 事件   示例程式碼: <view class="modal-view" hidden="{{!showModal}}" bindtap="toggleMod

禁止底部背景滾動方式(二)

 this.$refs.skuPanelPageRef.addEventListener("touchstart",function(e){           e.stopPropagation();     &nbs

mint-ui 共用,內部滾動重置問題

問題描述:           在專案中,一個訂單可能含有多個物流軌跡,檢視包裹軌跡時,共用了popup元件,發現一個問題,彈窗內部滾動的位置無法重置,檢查了css程式碼,沒有什麼特殊的,起初搞了一個臨時方案,關閉的時候高度置為0,開啟的時候重新賦值,總感覺不舒服。 &l

H5頁面後禁止滾動及禁止滾動釋放

1.禁止頁面滾動         document.getElementsByTagName('body')[0].setAttribute('style', 'position:fixed; width:100%;') 2.釋放          document.g

(居中 滾動

var $ = require('common:ui/jquery'); function domCenter(opt){this.options = $.extend({dom:"",height: 0,domCss:{},domchange:{},foot:false,

Selenium-js

單擊 cli 字符串類型 pytho javascrip clas .cn bdr 對話 學習過js的小夥伴會發現,我們在一些實例中用到了alert()方法、prompt()方法、prompt()方法,他們都是在屏幕上彈出一個對話框,並且在上面顯示括號內的內容,使用這種方法

ISO手機的h5介面 alert出框 不顯示IP地址

<script> window.alert = function(name){ var iframe = document.createElement("IFRAM