使用layer的彈窗時,出現layer引入成功,觸發成功,控制台無報錯,但是頁面無變化或者僅出現遮罩層的問題的解決思路


------------------------------------------20180410補充---------------------------------------------------------------------------------------------

今天發現,原來不需要調整的layer彈窗也無法彈出了,

對比了代碼版本,發現是因為今天調試代碼的時候用了dump打印數據

緊接着我又試了下  echo ,print_r ,var_dump等輸出打印形式

發現,TP的dump方法直接會導致彈窗不可見

而PHP原生的echo,print_r,var_dump,會導致彈窗位置不為屏幕中央

刪掉輸出函數之后,果然彈窗又正常了。

-----------------------------------------------------------------------------------------------------------------------------------------------------------

 

 

 

最近和前端進行交互的時候,出現了兩次如題所述的問題

第一次出現時百思不得解,暫時就先放下了

第二次又出現這個問題的時候,那真是百爪撓心了!

幸而靈機一動,使用f12查看頁面元素的變化,結果成功找到了原因

 

如圖所示,我們看到layer的彈窗確實是已經觸發了,元素也已經追加到了網頁中,但是卻看不出來變化!

不急,選中這段代碼,我們來看看它的樣式

這樣,我們又發現了問題,z-index設置的很大,肯定是想讓彈窗始終保持在頂層的,

但是這個top的值又未免太大了吧?!

於是我嘗試將其調整小一點

 

 如上圖所示,top改為100px之后,頁面中已經可以捕捉到彈出層的元素位置了,但是貌似z-index還小?但是默認的z-index已經很大很大了呀

於是我又查看了自己的遮罩層的z-index

顯然不應該因為這個導致layer彈窗被覆蓋啊。

沒辦法走一步算一步,我就嘗試使用js更改這個彈窗元素按照自己調試的結果進行更改

重點來了,layer的樣式是行內的,我們也就只能使用行內的樣式才能覆蓋系統默認的樣式了

所以:

 

 結果來了!

 

總結:出現layer的問題,一般都是自己的彈出層和layer彈出層出現了沖突。

     所以最好的解決方案,當然是從源頭上,自己的彈窗也使用layer.open來構建,這樣就不會有沖突了

          當然,既然問題已經出現了,那就試試上述方法來調整樣式吧!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM