css - 转换 Firefox 中的错误?

标签 css firefox navigation transform transition

官方slideout.js demo在 Firefox 中不会抽搐。

  1. 打开我的demo on Codepen在 Firefox 中
  2. 打开菜单
  3. 关闭菜单
  4. 看到 主容器 抽动 - 如何修复此错误

JavaScript:

var slideout = new Slideout({
  'panel': document.getElementById('main'),
  'menu': document.getElementById('menu'),
  'padding': 256,
  'tolerance': 50
});

document.querySelector('.js-slideout-toggle').addEventListener('click', function() {
  slideout.toggle();
});

document.querySelector('.menu').addEventListener('click', function(eve) {
  if (eve.target.nodeName === 'A') { slideout.close(); }
});

/*
slideout.on('beforeopen', function() {  document.querySelector('.fixed').classList.add('fixed-open'); });
slideout.on('beforeclose', function() {  document.querySelector('.fixed').classList.remove('fixed-open'); });
*/

CSS:

.slideout-menu {
    position: fixed;
    left: 0;
    top: 0;
    bottom: 0;
    right: 0;
    z-index: 0;
    width: 256px;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    display: none;
}
.slideout-panel {
    position:relative;
    z-index: 1;
    will-change: transform;
}
.slideout-open{
    overflow: hidden;
}
.slideout-open body{
    overflow: hidden;
}
.slideout-open .slideout-panel {
    overflow: hidden;
}
.slideout-open .slideout-menu {
    display: block;
}




.btn {
  display:inline-block;
  height:50px;
    width:50px;
    background-color:blue;
    color:#fff;
  cursor:pointer;
}
.header1,.header2 {
    width:100%;
    height:50px;
  line-height:50px;
    opacity:0.5;
}
.header1 {
    background-color:green;
    position:fixed;
    top:0;
    z-index:5;
}
.header2 {
    background-color:red;
}
.fixed {
    backface-visibility:hidden;
    -webkit-backface-visibility:hidden;
    position:relative;
    z-index:2;
    -webkit-transition:all .3s ease;
    -moz-transition:all .3s ease;
    -o-transition:all .3s ease;
    transition:all .3s ease;
}
.fixed-open {
    -webkit-transform:translate3d(256px,0,0);
    -moz-transform:translate3d(256px,0,0);
    -ms-transform:translate3d(256px,0,0);
    -o-transform:translate3d(256px,0,0);
    transform:translate3d(256px,0,0);
}
.menu {
    color:#fff;
    background-color:darkblue;
 margin:50px 0 0;
}
.panel {
    backface-visibility:hidden;
    -webkit-backface-visibility:hidden;
    display:block;
    width:100%;
    min-height: 100%;
    font-size:30px;
    font-weight:700;
    background-color:lightblue;
}



*{
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    -webkit-tap-highlight-color: rgba(0,0,0,0);
    -webkit-focus-ring-color: rgba(0,0,0,0);
    outline: 0;
}
body {
    width: 100%;
    height: 100%;
    margin:0;
}

HTML:

<h1 style="height:30px;margin:10px 60px;">Title</h1>

<header class="header1">
  <div class="btn js-slideout-toggle">menu</div>
</header>
<!--
<div class="header2 fixed">
  first div (transform)
  <a href="https://mango.github.io/slideout/" target="_blank">slideout.js</a>
</div>
-->
<main id="main" class="panel">main container
<br/><br/><br/><br/><br/><br/><br/><br/>1 
<br/><br/><br/><br/><br/><br/><br/><br/>2 
<br/><br/><br/><br/><br/><br/><br/><br/>3 
<br/><br/><br/><br/><br/><br/><br/><br/>end
</main>

<aside id="menu" class="menu">main menu
<br/><br/><br/><br/><br/><br/><br/><br/>1 
<br/><br/><br/><br/><br/><br/><br/><br/>2 
<br/><br/><br/><br/><br/><br/><br/><br/>3 
<br/><br/><br/><br/><br/><br/><br/><br/>4 
<br/><br/><br/><br/><br/><br/><br/><br/>5 
<br/><br/><br/><br/><br/><br/><br/><br/>end
</aside>

最佳答案

问题似乎与您的 will-change 属性有关,该属性将此警告添加到我的开发者控制台。

Will-change memory consumption is too high. Budget limit is the document surface area multiplied by 3 (186813 px). Occurrences of will-change over the budget will be ignored.

当我将其调整为小于阈值时,它起作用了。否则,它不会。至于修复它,似乎唯一的解决方案是删除 CSS 属性。

.slideout-panel {
    position:relative;
    z-index: 1;
/*  will-change: transform; */
}

关于css - 转换 Firefox 中的错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37582463/

相关文章:

html - 为什么不分词 :break-word work in Firefox?

javascript - 从 Firefox 复制后,Url 中的 UTF-8 字符发生变化

jquery - 全宽 - 正常高度 BG Img

javascript - 使用CSS隐藏文本和更改图像

ssl - 如何禁用 Firefox 的 ssl/tls 证书

jquery - 如何有效地使用 css 定位我的导航菜单

html - 如何将导航链接设置为与 Logo 相同的高度?

javascript - Qualtrics 中分支逻辑后的后退按钮

css - 提交时输入文本的流体宽度

css - 如何使用 CSS 模拟表格单元格(无 float )?