我正在構建一個單頁網站,該網頁在'開始屏幕'上顯示80%屏幕寬度的矢量圖形。一旦用戶向下滾動,圖形將跳轉到頁面頂部的導航欄,並且會收到50px的高度。從大尺寸到小尺寸的轉換應該使用CSS3轉換動畫。元素尺寸的CSS3過渡不能從百分比或自動到像素尺寸
但是,當將元素從百分比或自動值縮放到固定像素值時,CSS轉換似乎不起作用,反之亦然。我製作了一個jsfiddle來演示效果。雖然div的高度過渡良好,但寬度根本不是動畫。
對於圖像的初始大小,使用像素寬度不是響應式設計原因的選項。代碼:
<!DOCTYPE html>
<html>
<head>
<title></title>
<style type="text/css">
html, body{
background-color: #010101;
height: 100%;
}
.navbar--logo-item{
background-color: #fff;
height: 10px;
width: 80%
-moz-transition: all 0.5s ease-in-out;
transition: all 0.5s ease-in-out;
}
.navbar--logo-item.small{
height: 50px;
width: 200px;
}
</style>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('#toggle').click(function(){
$('.navbar--logo-item').toggleClass('small');
});
});
</script>
</head>
<body>
<div class="navbar--logo-item"></div>
<button id="toggle">
Toggle Logo
</button>
</body>
</html>
雖然這似乎是一種好方法,但我剛剛意識到,我的問題有點複雜。我使用auto作爲維度值。寬度:計算(自動+ 0px)似乎不工作,我的遺憾。我要更新我的問題... – Bunjip
增加了另一種處理方法。不完美,但可以工作,如果初始寬度在一個有限的範圍內 – vals