javascript - 在通过 CSS 转换其尺寸时获取元素的(最终)高度
问题描述
当请求当前在 CSS 转换中的元素的尺寸时,jQuery 将在请求尺寸的给定时间返回元素高度的当前值。
虽然这是正确的,但它通常不是我们所需要的。在很多情况下,我想检索元素在转换后将具有的最终尺寸,但转换仍在进行中。
如何在元素仍处于过渡状态时可靠地检索元素的尺寸?
$(document).ready(function() {
$('#one').on('click', function() {
$(this).addClass('trans');
$('#output').text($(this).height());
var self = $(this);
setTimeout(function() {
$('#output').text(self.height());
}, 200);
});
});
#output {}
#one {
width: 200px;
height: 200px;
background: red;
transition: all 1s linear;
}
#one.trans {
height: 600px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<div id="output">...</div>
<div id="one"></div>
请参阅此代码笔示例
解决方案
使用的问题setTimeout
是你被迫使用一个有点随意的值。您可以使用requestAnimationFrame
,它应该强制代码在转换后执行
很多时候,你需要等到第二个动画帧,所以:
requestAnimationFrame(function() {
requestAnimationFrame(function() {
$('#output').text(self.height());
});
});
推荐阅读
- java - 当我在没有 JDK 的情况下运行 jar 时出现错误
- php - 带有文本字段的 Elasticsearch 基数聚合
- php - 尝试使用联系表发送电子邮件
- tensorflow - 如何 tf.loadLayersModel 的 mobilenet v2
- php - PHP DateTime Diff 2019-12-01 -> 2019-11-01 零月?
- javascript - Ant design tab 标题样式问题
- apache - 无法获得正斜杠 .htaccess 重定向工作
- android - 我如何解决在模块 jetified-volley-1.1.1-runtime.jar 中发现的重复类 com.android.volley.AuthFailureError
- c++ - switch : 无案例中断
- c# - 我们可以通过登录按钮从登录页面(非内容页面)重定向到母版页面吗?