0

我正在尝试在网页上制作一种“新闻栏”。该栏使用 CSS 动画,文本内容在每次迭代时刷新,使用 ajax 从 RSS 提要中检索数据。

我的问题是内容长度可能会有所不同,所以我想将用于显示文本的字体大小设置为足够小以显示所有内容。

然后我使用这个函数来调整文本内容的大小:

function resize(content /*content div*/, maxHeight/*bar height*/, maxWidth /*bar width*/) { content.parentNode.style.fontSize = maxHeight + 'px'; var totalwidth = content.offsetWidth; if (totalwidth > maxWidth) { content.parentNode.style.fontSize = (maxHeight * maxWidth / totalwidth) + 'px'; } }

它有时在第一次迭代时有效,但在它为 totalWidth 返回完全错误的值(如 36)之后。如果我在“if”行设置断点,调试器会为 content.offsetWidth 显示一个一致的值(如 4320)。

我怎样才能解决这个问题 ?

4

1 回答 1

1

我找到了解决方案。我必须将内容设置为“内联块”。如果内容显示设置为“块”,则其 offsetWidth 随 css 动画而变化。

于 2014-04-11T09:14:03.473 回答