2013-09-27 101 views
22

當使用css3 transform()時,position: fixed不適用。我做了一個完整的jsFiddle顯示問題:http://jsfiddle.net/SR5ka/css3變換還原位置:固定

首先向下滾動,注意左側邊欄保持固定。現在,點擊expand,然後向下滾動,注意左側邊欄現在是而不是固定。

任何想法,如果有一個本地的CSS修復?

回答

4

您可以使用like this one附近的工作。它涉及固定元素和容器的左值(通過類)。

.global-wrapper { 
    position: relative; 
    -webkit-transition: 300ms; 
    transition: 300ms; 
} 
.global-wrapper.expanded, 
.global-wrapper.expanded .navbar { 
    left: 200px; 
} 
.navbar { 
    -webkit-transition: 300ms; 
    transition: 300ms; 
    position: fixed; 
    width: 100px; 
    height: 100%; 
    top: 0px; 
    left: 0px; 
} 
.content { 
    position: relative; 
    width: calc(100% - 170px); /* 100% - width of left bar plus margin */ 
} 

香草JS少量切換它的類:

var wrapper = document.querySelector(".global-wrapper"); 
document.getElementById("expand").onclick = function() { 
     wrapper.classList.toggle("expanded"); 
} 
+0

不需要JavaScript。 – Justin

+0

因此,當點擊按鈕時,您不希望固定元素移位? –

+3

Javascript不是必需的,這裏是一個純CSS的解決方案。感謝您的靈感。 http://jsfiddle.net/SR5ka/25/ – Justin

3

根據此答案:https://stackoverflow.com/a/15251226/125264 此問題可以通過添加僞固定-webkit變換到元件,其需要修復。爲我工作。

編輯04.2016

看起來不工作了。

+2

它不適合我 –

+0

Ciprian,你並不孤單,鏈接答案上的一些人也有問題。 – Wiseman