layui弹出层动态滚动条设置

3,901 阅读2分钟

本文系作者 不太自律的程序猿原创,转载请私信并在文章开头附带作者和原文地址链接。

前言

首先简单说一下,今天遇到的一个问题,就是在使用layui弹出层的时候,发现layui在将我们的内容封装的时候,动态展示的时候会出现一些问题,用文档给的一些属性并不能解决的。没错就是滚动条的设置问题。

在layui提供的文档中有一个属性说是可以做到所谓的滚动条的显隐问题,但是在动态操作的时候是有问题的。废话不多说,跟这我来往下瞅一瞅。

问题描述

layui的一个打开悬浮框的方法,这些参数我就不做详细赘述了,有疑问的小伙伴可以自行去查看研习。

layer.open({

    type:1,

    title: "编辑",

    fixed:false,

    resize :false,

    scrollbar:false,

    shadeClose: true,

    area: ['550px'],

    content:$('#set'),

    end:function(){

    clean();

    }

});

开始是正常的 1.png

2.png

在设置了scrollber:不允许出现滚动条之后,在我们弹出层里面的内容开始是没有超过div的高度的所以,是没有什么问题的,但是在里面有一个比较长的下拉选,此时高度就超过了我们设置的div的高度额,此时scrollber这个属性管不到你后续的这些操作了。所以我们去看一下layui是如何封装我们的conten中的内容。F12进入开发者工具,查看代码。

3.png

我们可以看到layui先创建了一个class为layui-layer layui-layer-page的最外层的div,内层主要由两个div,一个是class为layui-layer-title里面放着我们的title,另外一个class为layui-layer-content里面放着我们的contene里面的id为set的div,

此时我们发现这个滚动条出现的位置就是在class为layui-layer-content的div,所以我们需要将overflow设置为visible,但是刚才说了外层的这几个div都是layui给我们生成的,我们不可能因为这个页面需要这样就要去改layui的源码,所以我们需要在本页面上去修改.layui-layer-content

<style>

    .layui-layer-content{

    overflow:visible;

    }

</style>

此时我们再去查看页面发现并不管用,在选择下拉选的时候滚动条还会出现,那么我们再去看一下样式,看看layui-layer-content这个class是不是我们设置的没有生效,不然应该是不会出现这种情况的。

4.png

果然如我们所料,我们添加的这个属性并未生效,layui里面是设置的

.layui-layer-page .layui-layer-content {

position: relative;

overflow: auto;

}

发现人家是设置的.layui-layer-page这个下面的.layui-layer-content样式

所以我们需要修改一下原来的样式代码:

<style>

    .layui-layer-page .layui-layer-content{

    overflow:visible;

    }

</style>

ok,我们再去看一下效果,

5.png

欧了.jpeg

是我想要的效果,就这样吧,浅记一下。