我有一个随机生成到div的文本。并且此文本的宽度取决于当前生成的内容。而且我希望此文本仅在太大时才显示 html:

<div id="random_word"> <!--here appears something--> </div>

CSS:
#random_word {
    color: white;
    position: absolute;
    width: 50%;
    left: 0%;
    text-align: center;
    font-size: 8vw;
    margin-top: 22%;
    font-variant: small-caps
    text-shadow: 0 0 20px #000;
    text-align: center;
    z-index: 2;
    overflow: hidden;
    white-space: nowrap;
    line-height: 100%;
}

我已经在互联网上找到此CSS属性:overflow-x:-webkit-marquee;但我不确定如何使用它。有人可以帮忙吗?

最佳答案

确定元素是否溢出的最简单方法是将其scroll高度/宽度与其offset高度/宽度进行比较。如果任何scroll值大于它们的offset对,则元素的内容溢出。

function isElementOverflowing(element) {
    var overflowX = element.offsetWidth < element.scrollWidth,
        overflowY = element.offsetHeight < element.scrollHeight;

    return (overflowX || overflowY);
}

从这里开始,这是一个简单的问题,检查此函数的返回值,如果是true,则添加选取框效果。为此,您可以将div的内容包装在<marquee>中,或者使用带前缀的marquee CSS规则或通过CSS动画对其进行模拟,以达到相同的视觉效果。

注意:虽然<marquee>标记在大多数浏览器中仍然可以正常工作,但已被认为已弃用,因此不能用于将来。
  • 这是a quick fiddle on wrapping in a marquee tag,试一下文本长度以了解其工作原理。 (或者,您可以将选取框的行为设置为左右交替:here's how)
  • 这是a tutorial on CSS marquee
  • ,这是a thread on visually simulating a marquee with animations

  • 祝你好运!

    关于html - 如何仅在字幕溢出时制作字幕文本?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41987383/

    10-16 23:24