我正在构建一个单页网站,该网页在'开始屏幕'上显示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