jQuery操作dom實(shí)現(xiàn)彈出頁面遮罩層(web端和移動端阻止遮罩層的滑動)
最近項(xiàng)目遇到了遮罩層的一些問題,總結(jié)一下:
彈出遮罩層
遮罩層彈出有非常多的方法,這里只寫出本人用的代碼,使用jq操作dom的方法進(jìn)行實(shí)現(xiàn)的。
<style>.box{position:absolute;width:100%;left:50%;height:auto;z-index:100;background-color:#f5f5f5;border:1px #ddd solid;padding:1px;}</style><div id="bg" v-click="closeMask()"></div> <div class="box" style="display:none"> <input v-click="closeMask()" class="inpt_bottomb white" value="取 消" type="button" /> <div class="clear"></div> </div> </div>
#bg為透明度為0.6的一個遮罩頁面,.box為遮罩層上的按鈕。
//彈出遮罩 $("#bg").css({ display: "block", height: $(document).height() }); var $box = $('.box'); $box.css({ //設(shè)置彈出層距離左邊的位置 left: ($("body").width() - $box.width()) / 2 -5 + "px", //設(shè)置彈出層距離上面的位置 top: ($(window).height() - $box.height()) + $(window).scrollTop() + "px", display: "block" });
有了觸發(fā)遮罩的行為后,設(shè)置遮罩的高度為整個頁面高度和可見性可見,然后對按鈕出現(xiàn)的位置進(jìn)行定位布局的設(shè)置,需要注意的是top屬性要加上滾輪的高度,這樣會保證我們的按鈕會一直在視線之內(nèi)。
關(guān)閉遮罩時也只需設(shè)置可見性即可。
效果圖
遇到問題
功能上是可以實(shí)現(xiàn)的,但還是有些缺陷問題,比如頁面過長時遮罩層也會隨著頁面進(jìn)行滑動,按鈕的位置就會發(fā)生變化:
解決方案PC端
pc端的解決思路就是在彈出遮罩層的時候取消已經(jīng)存在的滾動條,達(dá)到無法滾動的效果。
也就是說給body添加overflow:hidden屬性即可,IE6、7下不會生效,需要給html增加overflow:hidden屬性。
解決方案移動端
移動端取消滾動條是達(dá)不到效果的,這時就需要去除遮罩層和按鈕層的touchmove的默認(rèn)事件,代碼如下:
$('.box,#bg').bind("touchmove",function(e){ e.preventDefault(); });
相關(guān)文章
jquery實(shí)現(xiàn)圖片左右間隔滾動特效(可自動播放)
圖片左右間隔滾動Jquery特效,點(diǎn)擊滾動,不點(diǎn)擊自動滾動,具體處理程序如下,感興趣的朋友可以參考下哈,希望可以幫助到你2013-05-05jquery選擇器排除某個DOM元素的方法(實(shí)例演示)
這篇文章主要介紹了jquery選擇器排除某個DOM元素的方法,也就是在選中的一些元素中,過濾一些不需要的,使用jquery not選擇器實(shí)現(xiàn),需要的朋友可以參考下2014-04-04非常實(shí)用的jQuery代碼段集錦【檢測瀏覽器、滾動、復(fù)制、淡入淡出等】
這篇文章主要介紹了非常實(shí)用的jQuery代碼段集錦,總結(jié)分析了包括jQuery檢測瀏覽器、滾動、復(fù)制、粘貼、淡入淡出等操作實(shí)現(xiàn)技巧,需要的朋友可以參考下2019-08-08jquery獲取table中的某行全部td的內(nèi)容方法
jquery獲取table中的某行全部td的內(nèi)容方法,需要的朋友可以參考一下2013-03-03jQuery實(shí)現(xiàn)凍結(jié)表頭的方法
這篇文章主要介紹了jQuery實(shí)現(xiàn)凍結(jié)表頭的方法,實(shí)例分析了jQuery擴(kuò)展方法的實(shí)現(xiàn)技巧及固定表格樣式的方法,需要的朋友可以參考下2015-03-03js整數(shù)字符串轉(zhuǎn)換為金額類型數(shù)據(jù)(示例代碼)
本篇文章主要是對js整數(shù)字符串轉(zhuǎn)換為金額類型數(shù)據(jù)的示例代碼進(jìn)行了介紹,需要的朋友可以過來參考下,希望對大家有所幫助2013-12-12jQuery+css實(shí)現(xiàn)炫目的動態(tài)塊漂移效果
這篇文章主要介紹了jQuery+css實(shí)現(xiàn)的動態(tài)塊漂移效果,涉及jQuery基于隨機(jī)數(shù)與時間函數(shù)動態(tài)操作頁面元素樣式的相關(guān)技巧,需要的朋友可以參考下2016-01-01