2014-11-21 55 views
0

我正在嘗試一個左欄隱藏/顯示與轉換。這裏是我的代碼:Css轉換不能與jquery一起工作

JQuery的:

$("[data-toggle='offcanvas']").click(function(e) { 
    e.preventDefault(); 
    $('.left-side').toggleClass("collapse-left"); 
}); 

CSS:

.left-side.collapse-left { 
    left: -220px; 
    -webkit-transition: all 1s ease-in-out; 
    -moz-transition: all 1s ease-in-out; 
    -ms-transition: all 1s ease-in-out; 
    -o-transition: all 1s ease-in-out; 
    transition: all 1s ease-in-out; 
} 

HTML:

<aside class="left-side sidebar-offcanvas"> 
    <!-- my content--> 
</aside> 
+0

然後在代碼是什麼問題呢? – yugi 2014-11-21 09:25:22

+0

作爲代碼片段還是小提琴可能會減少測試用例?你到目前爲止顯示的代碼應該可以工作。但是,我會建議使用'translate',這樣就可以將渲染卸載到GPU,並且不會導致大量重新繪製。 – Terry 2014-11-21 09:25:32

+0

提供了一個jsfiddle – dev 2014-11-21 09:25:59

回答

1

首先, css left屬性對正常f中的元素沒有影響低。您應該通過設置以外的位置屬性值位置該元素,使得left生效爲。其次,過渡發生在一個值到另一個值之間。因此,如果您希望看到轉換,請設置一個默認值,例如left:0

最後,如果您希望元素在刪除類時有動畫效果,則不應該在正在切換的類中添加transition屬性,而應使用靜態選擇器來設置它。


$("#click").click(function(e) { 
 
    e.preventDefault(); 
 
    $('.left-side').toggleClass("collapse-left"); 
 
});
.left-side { 
 
    position: relative; 
 
    left: 0; 
 
    -webkit-transition: all 1s ease-in-out; 
 
    -moz-transition: all 1s ease-in-out; 
 
    -ms-transition: all 1s ease-in-out; 
 
    -o-transition: all 1s ease-in-out; 
 
    transition: all 1s ease-in-out; 
 
} 
 
.left-side.collapse-left { 
 
    left: -220px; 
 
} 
 
div { 
 
    min-height: 200px; 
 
    max-width: 200px; 
 
    background: #06F; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<button id="click">click</button> 
 
<aside class="left-side sidebar-offcanvas"> 
 
    <div>This is test</div> 
 
</aside>

+1

謝謝。這正是我期待的。 – 2014-11-21 09:56:12

0

你的意思是這樣嗎?

http://jsfiddle.net/99o4k67f/1/

$("#click").click(function(e) { 
    e.preventDefault(); 
    $('.left-side').toggle('slow'); 
}); 

還是更喜歡這樣的:

http://jsfiddle.net/99o4k67f/2/

$("#click").click(function(e) { 
    e.preventDefault(); 
    $('.left-side').animate({width:'toggle'},900); 
}); 

順便說一句,你不需要這方面的任何CSS :)

所有的
+0

嗯,但只有崩潰剩下。不要左上角 – 2014-11-21 09:39:08

+0

Lol @MamunSardar看看第二個小提琴;) – Refilon 2014-11-21 09:39:27