使用layui彈出層的心得,解決使用layer iframe 沒有出現滾動條 導致頁面顯示不全

問題描述:在做後臺的時候想要實現這樣一個功能,點擊彈出一個窗口,窗口是下拉選擇框,給用戶選擇。用到了layui,但是卻發現,彈窗雖然固定了高寬,但是裏面的下拉框,在顯示的時候卻被彈窗擋住了,導致信息顯示不全,也沒滾動條。

layer.open({
                        id:'edit',
                        type: 2,
                        title: '修改設備信息',
                        content: '/action/device-update?id=' + data.id,
                        shadeClose: true, //點擊遮罩關閉
                        area: ['550px', '550px'],
                        btn: ['確定', '取消'],
                        yes: function (index, layero) {
                            var body = layer.getChildFrame('body', index).contents().serialize(); //巧妙的地方在這裏哦
                            update(body,table,_cur_page,index);
                        }
                    });

導致添加頁面如下圖:

信息顯示不全,右側沒有滾動條

後來一直百度和查找layui官方文檔,發現官方文檔也沒有直接的解決方法。

其實解決辦法倒是想出來一個,就是自己把body體padding設置一下。

但是通過琢磨和研究之後,才知道其實是layui樣式設置的問題。

後來研究才知道在layui內部樣式中,對.layui-layer-content定義了overflow屬性且爲hidden,只要取消這個屬性,就不存在遮擋問題。

關於overflow:

所以解決辦法可以去掉自己頁面中的body體中的class="layui-layout-body"即可,因爲正如上面所述,layui的layui-body樣式是overflow:hidden截取了

解決之後的效果圖如:

如上圖所示,就會出現滾動條了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章