在轉換完成後,是否有方法可以在瞬間更改某個屬性並同時更改另一個屬性?在轉換後更改屬性
我想將元素的height
從0
過渡到100%
。當height
是0
,我希望它的overflow
爲hidden
,並且當height
達到100%
時,我希望它的overflow
成爲auto
。
我嘗試這樣做:
#foo{
height: 0;
overflow: hidden;
transition: height 0.25s;
}
#foo.some-state{
height: 100%;
overflow: auto;
}
這將導致奇效。如果最終狀態以足夠的高度結束以至於不需要滾動條,則會發生什麼情況是在height: 0
處首先不存在滾動條。然後在轉換開始時出現,並在轉換期間維持高度不足。當高度變得足夠時,滾動條再次消失。
在這種情況下,我希望滾動條在轉換過程中不出現。換句話說,當轉換完成時,我想overflow
從hidden
切換到auto
。如何才能做到這一點?
這不可能通過CSS轉換單獨。有'transitionend'事件可以讓你對JS做出反應。如果你不想這樣做,你可以設置'overflow:scroll'來代替,從一開始就會出現一個滾動條。使用動畫而不是過渡可能是另一種方式。 – CBroe 2015-02-24 03:04:30
@Croro我會接受,如果你這樣做的答案。 – sawa 2015-02-24 03:14:12
@CarySwoveland我只是碰巧看到了。這是很好,你參與。我也喜歡在那裏提出建議。 – sawa 2015-12-14 08:48:03