0

I'm trying to make a kind of "news bar" on a web page. The bar use a CSS animation, and the text content is refreshed on each iteration using ajax to retrieve data from an RSS feed.

My problem is that the content length may vary, so I want to set the size of the font used to display the text small enough to display all the content.

I then use this function to resize the text content:

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'; } }

It sometimes works on first iteration, but after it returns totally wrong values (like 36) for totalWidth. If I put a breakpoint on the 'if' line the debugger display a coherent value (like 4320) for content.offsetWidth.

How can I fix this ?

user2223898
  • 441
  • 1
  • 3
  • 15

1 Answers1

1

I've found the solution. I have to set the content as "inline-block". If content display is set as "block" its offsetWidth vary with the css animation.

user2223898
  • 441
  • 1
  • 3
  • 15