------------------------------------------20180410補充---------------------------------------------------------------------------------------------前端
今天發現,原來不須要調整的layer彈窗也沒法彈出了,函數
對比了代碼版本,發現是由於今天調試代碼的時候用了dump打印數據spa
緊接着我又試了下 echo ,print_r ,var_dump等輸出打印形式調試
發現,TP的dump方法直接會致使彈窗不可見blog
而PHP原生的echo,print_r,var_dump,會致使彈窗位置不爲屏幕中央方法
刪掉輸出函數以後,果真彈窗又正常了。im
-----------------------------------------------------------------------------------------------------------------------------------------------------------總結
最近和前端進行交互的時候,出現了兩次如題所述的問題數據
第一次出現時百思不得解,暫時就先放下了樣式
第二次又出現這個問題的時候,那真是百爪撓心了!
幸而靈機一動,使用f12查看頁面元素的變化,結果成功找到了緣由
如圖所示,咱們看到layer的彈窗確實是已經觸發了,元素也已經追加到了網頁中,可是卻看不出來變化!
不急,選中這段代碼,咱們來看看它的樣式
這樣,咱們又發現了問題,z-index設置的很大,確定是想讓彈窗始終保持在頂層的,
可是這個top的值又未免太大了吧?!
因而我嘗試將其調整小一點
如上圖所示,top改成100px以後,頁面中已經能夠捕捉到彈出層的元素位置了,可是貌似z-index還小?可是默認的z-index已經很大很大了呀
因而我又查看了本身的遮罩層的z-index
顯然不該該由於這個致使layer彈窗被覆蓋啊。
沒辦法走一步算一步,我就嘗試使用js更改這個彈窗元素按照本身調試的結果進行更改
重點來了,layer的樣式是行內的,咱們也就只能使用行內的樣式才能覆蓋系統默認的樣式了
因此:
結果來了!
總結:出現layer的問題,通常都是本身的彈出層和layer彈出層出現了衝突。
因此最好的解決方案,固然是從源頭上,本身的彈窗也使用layer.open來構建,這樣就不會有衝突了
固然,既然問題已經出現了,那就試試上述方法來調整樣式吧!