javascript - 从右到左的 CSS 过渡宽度

标签 javascript html css css-transitions

我制作了一个标题(欢迎词),一旦页面加载 (onload="") 就会自动显示。

Fiddle如果下面的代码不起作用。

function animate() {
  document.getElementById("mainText").style.width = "100%";

}
#mainText {
  margin: 0px;
  display: inline-block;
  font-size: 100px;
  width: 0%;
  transition: width 2s;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: clip;
}
<body onload="animate()">
  <h1 id="mainText">Welcome</h1>
</body>

CSS 和 Plain JS 工作正常,但我希望“欢迎”一词首先显示在右侧,然后继续移动,因此从 e 到 W,而不是目前从左到右打开的样子。

我试过 text align: right;,但这并没有改变任何东西。

如果解决方案是 JS,我最好不想使用任何 jQuery。

过渡到一半时所需外观的示例:

最佳答案

您可以使用 clip-path属性裁剪元素的一部分,使它们不可见。此属性也可以动画化以再次显示元素,在动画中使用 forwards 关键字,使其保持在“显示”结束状态。

inset 采用以下顺序的值:从上、从右、从下、从左。

#text {
  margin: 0;
  font-size: 100px;
  animation: reveal 2s forwards;
}

@keyframes reveal {
  from {
    clip-path: inset(0 0 0 100%);
  }
  to {
    clip-path: inset(0 0 0 0);
  }
}
<h1 id="text">Welcome</h1>

关于javascript - 从右到左的 CSS 过渡宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44800363/

相关文章:

javascript - javascript中的关联数组使用对/元组作为多值键/索引

html - 引导导航栏覆盖整个页面,但不是所有页面

javascript - 使用 JavaScript 选择 CSS 主题

html - 出现的文本和粗体选择的链接 CSS

html - 为什么我的字体没有显示为@font-face?

html - 使第一个 div 不插入下一个

javascript - 有没有更好的方法在 Ruby on Rails 上执行 Unobtrusive JavaScript?

javascript - 将 div 动画化到网站的 Angular 落

javascript - 不可变内存——这可能吗?

html - text-align-last 与 text-align 在 Select Tag 上的行为