潜水动画自动高度
Div Animate Auto Height
我使用JavaScript,无法使用任何库,如J Query或CSS动画。
我有一个未定义高度的Div,它会根据包含的内容自动调整大小。
内容是通过设置innerHTML值来动态更改的。这很好用,但Div的尺寸变化是跳跃的,没有吸引力。我想制作高度变化的动画。
我看过很多关于这个主题的代码,但所有的解决方案都是基于库或CSS动画的。
以下是我对如何实现高度动态变化动画的想法
//get the current height of the div holder
var heightStart = document.getElementById("divHolder").clientHeight;
//the new height, currently I don't know to obtain this
var heightEnd = 1000;
//start a timer to animate the height change
var timer = setInterval( function() {
//clear timer if old height reached new height
if ( heightStart >= heightEnd ){
clearInterval(timer);
}
//set new height
element.style.height= heightStart ;
//incrementing height gradually
heightStart = heightStart + ( heightStart * 0.1 );
} , 50);
所以我遇到的问题是如何知道新的高度是多少,因为它总是会根据屏幕大小和内容而不同。
我想我可以将div的高度设置为一个固定的高度,等于heightStart。然后将溢出设置为无。然后设置新的innerHTML内容。因此,Div不会自动更改以适应新内容。然后我会使用上面的animate函数来逐渐增加高度,直到内容完全可见。
问题是,我不知道如何计算何时达到自动高度,或者何时所有内容都显示为高度。
想法?
谢谢。
首先,应该在应用新内容之前分配heightStart
。并且在新内容进来之后。您可以将其大小设置为heightEnd
。
var heightStart = document.getElementById("divHolder").clientHeight;
// APPLY NEW CONTENT HERE
document.getElementById("divHolder").innerHTML = NEW_CONTENT
document.getElementById("divHolder").style.height = 'auto';
var heightEnd = document.getElementById("divHolder").clientHeight;
document.getElementById("divHolder").style.height = heightStart;
document.getElementById("divHolder").style.overflow = 'hidden';
相关文章:
- 如何将高度动画设置为自动
- 如何设置'auto'JQuery动画中的高度
- 为矩形制作动画'它的高度应该上升,而不是下降
- 格林索克动画不适用于 SVG 高度
- 纯JavaScript - 定时动画 - 一致的高度
- 制作jQuery高度百分比动画
- jQuery在.show期间设置高度动画('幻灯片')
- jQuery动画到容器的高度
- 替换后将动画设置为高度0
- 动画渐变(javascript)背景不会延伸到窗口的整个高度
- 核心动画页面中的聚合物内容标签不会;t测量高度
- 页脚在滚动底部时没有设置高度动画
- CSS 切换过渡动画,自动高度不起作用
- 制作潜水高度动画
- Javascript在Angular中切换高度动画
- 设置高度动画时元素跳跃
- Div高度动画会导致Div在jQuery中更改对齐方式
- 在高度动画后获取回调
- Javascript高度动画问题
- 如何在jQuery中反转高度动画方向