【发布时间】:2020-05-09 00:22:30
【问题描述】:
我有两个 div,我想同时移动它们:一个向左,另一个向上。
我使用 transfom CSS 属性做到了这一点,并以像素为单位设置了 translateX 和 translateY。
当我不知道第一个 div 的高度时,如何做同样的效果?它根据其内容具有附加性。
我的真实项目使用 Angular,我想避免使用纯 JQuery(纯 CSS 解决方案会很棒!)。
编辑:
我使用上面的类来为我的第二个 div 设置动画:
.to-up {
transition-delay: .2s;
transform: translateY(-127px);
}
我通过这个计算得出了 127px 的值:
div1 高度 + div1 底部边距 + div1 边框。
在我的真实案例中,div1 的高度是附加到它的内容的,所以我不知道如何将 div2 动画到其父级的顶部。我该怎么做?
这是我的 HTML:
<div class="container">
<div id="item1" class="item">Test1</div>
<div id="item2" class="item">Test2</div>
</div>
我的 CSS:
.container {
width: 100%;
}
#item1 {
height: 120px;
}
#item2 {
height: 80px;
}
.item {
width: 100px;
border: 1px solid black;
margin: 5px;
transition: all .3s ease-in-out;
-webkit-transition: all .3s ease-in-out;
-moz-transition: all .3s ease-in-out;
-ms-transition: all .3s ease-in-out;
-o-transition: all .3s ease-in-out;
}
.to-right {
transform: translateX(-107%);
}
.to-up {
transition-delay: .2s;
transform: translateY(-127px);
}
还有 JQuery:
$('.item').on('click', function() {
$('#item1').toggleClass('to-right');
$('#item2').toggleClass('to-up');
});
终于有了在Jsfiddle 上处理像素的代码。
非常感谢!
【问题讨论】:
标签: html css angular css-animations