You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在JavaScript中创建可使用文档高度变量的关键帧动画?

用JavaScript创建可调用变量的CSS关键帧动画

基础实现:还原fadeIn关键帧

要在JS中创建CSS关键帧,核心是通过CSSOM动态插入规则。以下是实现你给出的fadeIn动画的代码:

// 获取文档中的样式表(也可以创建新样式表)
const styleSheet = document.styleSheets[0];

// 插入fadeIn关键帧规则
styleSheet.insertRule(`
  @keyframes fadeIn {
    from {
      opacity: 0%;
    }
    to {
      opacity: 100%;
    }
  }
`, styleSheet.cssRules.length);

进阶:嵌入文档高度变量

假设你已定义文档高度变量const docHeight = document.documentElement.scrollHeight;,可以直接把变量嵌入到关键帧的属性值中,实现适配高度的动画。比如做一个从文档底部滑入并淡入的动画:

// 定义文档高度变量
const docHeight = document.documentElement.scrollHeight;

// 创建新的style元素插入到页面(避免跨域样式表权限问题)
const styleElement = document.createElement('style');
styleElement.textContent = `
  @keyframes slideUpFadeIn {
    from {
      opacity: 0%;
      transform: translateY(${docHeight}px);
    }
    to {
      opacity: 100%;
      transform: translateY(0);
    }
  }
`;
document.head.appendChild(styleElement);

应用动画到元素

动画创建完成后,直接给目标元素设置动画属性即可:

const targetElement = document.getElementById('your-target-element');
targetElement.style.animation = 'slideUpFadeIn 1s ease-out forwards';

注意事项

  • 若操作现有样式表时遇到权限错误(比如跨域样式表),优先使用创建新<style>元素的方式,兼容性更好。
  • 变量值会在插入关键帧时被固定,如果文档高度动态变化(比如内容加载后),需要重新生成关键帧规则。

内容的提问来源于stack exchange,提问作者velzzz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 18:32:50