本文系作者 不太自律的程序猿原创,转载请私信并在文章开头附带作者和原文地址链接。
前言
首先简单说一下,今天遇到的一个问题,就是在使用layui弹出层的时候,发现layui在将我们的内容封装的时候,动态展示的时候会出现一些问题,用文档给的一些属性并不能解决的。没错就是滚动条的设置问题。
在layui提供的文档中有一个属性说是可以做到所谓的滚动条的显隐问题,但是在动态操作的时候是有问题的。废话不多说,跟这我来往下瞅一瞅。
问题描述
layui的一个打开悬浮框的方法,这些参数我就不做详细赘述了,有疑问的小伙伴可以自行去查看研习。
layer.open({
type:1,
title: "编辑",
fixed:false,
resize :false,
scrollbar:false,
shadeClose: true,
area: ['550px'],
content:$('#set'),
end:function(){
clean();
}
});
开始是正常的
在设置了scrollber:不允许出现滚动条之后,在我们弹出层里面的内容开始是没有超过div的高度的所以,是没有什么问题的,但是在里面有一个比较长的下拉选,此时高度就超过了我们设置的div的高度额,此时scrollber这个属性管不到你后续的这些操作了。所以我们去看一下layui是如何封装我们的conten中的内容。F12进入开发者工具,查看代码。
我们可以看到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是不是我们设置的没有生效,不然应该是不会出现这种情况的。
果然如我们所料,我们添加的这个属性并未生效,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,我们再去看一下效果,
是我想要的效果,就这样吧,浅记一下。