Translate3d with fixed element (working)

Fixed elements within translated elements become static. This is not a mobile bug as chrome on desktop does this as well. The translation needs to take place separately for the fixed and the non-fixed elements. Note:translating fixed elements does not work in android2. Use left/right instead of translate3d.

by sas_sam

HTML

<div id="menu">
    Cool slidy menu!
</div>
<div id="container">
    <div id="topbar" class="slide"><a id="menu-button">Menu</a>This is a topbar</div>
    <div id="wrapper" class="slide">
  <ul>
    <li>Content</li>
    <li>Content</li>
    <li>Content</li>
    <li>Content</li>
    <li>Content</li>
    <li>Content</li>
    <li>Content</li>
    <li>Content</li>
    <li>Content</li>
    <li>Content</li>
    <li>Content</li>
    <li>Content</li>
    <li>Content</li>
    <li>Content</li>
    <li>Content</li>
    <li>Content</li>
    <li>Content</li>
    <li>Content</li>
    <li>Content</li>
    <li>Content</li>
    <li>Content</li>
    <li>Content</li>
    <li>Content</li>
    <li>Content</li>
    <li>Content</li>
    <li>Content</li>
    <li>Content</li>
    <li>Content</li>
    <li>Content</li>
    <li>Content</li>
    <li>Content</li>
    <li>Content</li>
    <li>Content</li>
    <li>Content</li>
    <li>Content</li>
    <li>Content</li>
    <li>Content</li>
    <li>Content</li>
    <li>Content</li>
    <li>Content</li>
    <li>Content</li>
    <li>Content</li>
    <li>Content</li>
    <li>Content</li>
    <li>Content</li>
    <li>Content</li>
    <li>Content</li>
    <li>Content</li>
    <li>Content</li>
    <li>Content</li>
    <li>Content</li>
    <li>Content</li>
    <li>Content</li>
    <li>Content</li>
    <li>Content</li>
    <li>Content</li>
    <li>Content</li>
    <li>Content</li>
    <li>Content</li>
    <li>Content</li>
    <li>Content</li>
    <li>Content</li>
    <li>Content</li>
    <li>Content</li>
    <li>Content</li>
    <li>Content</li>
    <li>Content</li>
    <li>Content</li>
    <li>Content</li>
    <li>Content</li>
  </ul>
    </div>
</div>

CSS

#container{
    width:100%;
    position:absolute;
    left:0px;
    top:0px;
}

#wrapper{   
    background:white;
    padding:5px;
}
.slide{
    -webkit-transition:all .2s linear;
    -webkit-transform: translate3d(0,0,0);
}

#container.active .slide{
    -webkit-transform: translate3d(85%,0,0);
}

#menu-button{
    float:left;
    line-height:20px;
    margin:10px;
    padding:10px;
    background:#555;
    color:white;
}

#topbar{
    position:fixed;
    width:100%;
    top:0px;
    left:0px;
    line-height:65px;
    background:#ddd;
    text-align:center;
    z-index:1; /*for some reason we need a z index now*/
}

body{
    background:#333;
}

#menu{
    position:fixed;
    top:0px;
    left:0px;
    width:100%;
    color:white;
}

</style>

<meta name="viewport" content="width=device-width, height=device-height, initial-scale=1.0, user-scalable=0, minimum-scale=1.0, maximum-scale=1.0">
<style>

JavaScript

$(function(){
    $('#menu-button').click(function(){$('#container').toggleClass('active');});
});