Javascript “高度:100%”和`<;md自动选择>;`窗户
在我的项目中,我必须在Javascript “高度:100%”和`<;md自动选择>;`窗户,javascript,html,css,angularjs,angular-material,Javascript,Html,Css,Angularjs,Angular Material,在我的项目中,我必须在和标签上设置高度:100%,以形成中心元素,并使超过整页高度 这在某种程度上破坏了指令。在我的例子中,我有很多自动选择在彼此下面。只要我点击下面的一个,整个页面就会变成白色。 这是由$mdUtils中的disableBodyScroll-方法引起的,该方法在打开自动选择、侧导航等时被调用 主要问题似乎是在我们的例子中,body.scrollHeight与body.clientHeight相同 $mdUtils.disableBodyScroll代码: var clientW
和
标签上设置高度:100%
,以形成中心元素,并使
超过整页高度
这在某种程度上破坏了
指令。在我的例子中,我有很多自动选择在彼此下面。只要我点击下面的一个,整个页面就会变成白色。
这是由$mdUtils
中的disableBodyScroll
-方法引起的,该方法在打开自动选择、侧导航等时被调用
主要问题似乎是在我们的例子中,body.scrollHeight
与body.clientHeight
相同
$mdUtils.disableBodyScroll
代码:
var clientWidth = body.clientWidth;
if (body.scrollHeight > body.clientHeight + 1) {
applyStyles(body, {
position: 'fixed',
width: '100%',
top: -scrollOffset + 'px'
});
applyStyles(htmlNode, {
overflowY: 'scroll'
});
if (body.clientWidth < clientWidth) applyStyles(body, {overflow: 'hidden'});
}
var clientWidth=body.clientWidth;
如果(body.scrollHeight>body.clientHeight+1){
applyStyles(主体{
位置:'固定',
宽度:“100%”,
顶部:-滚动偏移量+‘px’
});
applyStyles(htmlNode{
溢出:“滚动”
});
if(body.clientWidth
这是由100%高度引起的。从body和html标记中删除height属性可以解决自动选择的问题。但是如果我们去掉高度,小于100%的页面将显示错误的sidenav行为(sidenav仅与页面一样高)。
我们通过monkey patching$mdUtils.disableBodyScroll
临时修复了该问题。
我们替换了
if(body.clientWidth
具有
applyStyles(主体,{'overflow':'visible'})代码>
对于这个示例,很难创建plnkr,因为结构非常复杂,并且只要我尝试简化代码,问题就不会出现。
有人遇到过这个问题吗
另请查看AngularJS材料GitHub页面上的问题:
如果您使用flex
和布局填充
,侧导航和主要内容将始终填充整个页面,如果有更多内容,则会滚动。谢谢,但布局填充只是高度:100%
的包装。这意味着我们仍然有同样的问题:/也许你可以在侧边栏不填充高度的情况下为你的主布局添加一个plunkr。这似乎是根本问题。