CSS margin-left 过渡不起作用

标签 css margin transition

我正在尝试从中心向左过渡并降低图像的高度。 高度过渡工作正常,但边距只是传送到左侧而不是动画。

这是我的代码:

#logo_img {
    height: 55px;
    width: 55px;
    background-color: red;
    margin-left: auto;
    margin-right: auto;
    display: block;
    transition: all 1s ease-in-out;
}

#logo_img.tiny {
    height:45px;
    margin-left: 0;
}

JS:

$('#logo_img').addClass('tiny');

工作示例:http://jsfiddle.net/v0w6s3ms/1/

有什么帮助吗?

最佳答案

你不能为 auto 属性设置动画,而是尝试这样的事情

$(function() {
  setTimeout(function() {
    $('#logo_img').addClass('tiny');
  }, 1000);
});
#logo_img {
  height: 55px;
  width: 55px;
  background-color: red;
  margin-left: calc(50% - 55px);
  margin-right: auto;
  display: block;
  transition: all 1s ease-in-out;
}
#logo_img.tiny {
  height: 45px;
  margin-left: 0;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<section id="logo_img"></section>

关于CSS margin-left 过渡不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30587900/

相关文章:

javascript - CSS fade with JS callback 设置css display on completion中断动画

javascript - 相同元素的相同功能

html - CSS Foundation 清除默认边距以加入对象

javascript - 我无法使用 select 更改 div 的边框样式

html - 在页面中心创建一个固定的 div

html - 如何使 HTML 列表环绕 float 内容

graph - D3.js 多线图转换

javascript - D3JS - 以恒定速度沿 svg 路径制作圆圈

html - 使用 html css 进行图表的通用滑动手势

javascript - 如何使用 javascript/jquery 触发带有延迟点击的 css 动画?