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

如何解决文字动画拉伸页面导致侧边LOGO被挤出可视区域的问题

问题修复方案

核心原因

你当前使用的width、margin-left动画属于布局类动画,会真实修改元素的实际占据尺寸,触发浏览器重排。哪怕给子元素加了overflow:hidden,元素本身的尺寸扩张依然会向上撑开父级容器,最终挤压侧边LOGO的空间。

具体修改方案

1. 新增外层容器样式约束

给.first-box添加固定的尺寸限制,从根源避免被内部动画撑开:

.first-box {
  display: flex;
  align-items: center;
  max-width: 800px; /* 可根据首页预留的文字区域宽度自定义调整 */
  overflow-x: hidden;
  flex-shrink: 0; /* 禁止该容器挤压侧边LOGO,也不会被其他元素挤压 */
}

2. 优化动画实现,避免布局重排

把原来修改margin-left、width的动画改成用transform实现,transform属于合成层动画,不会修改元素实际布局尺寸,完全不会影响外层容器:

/* 调整intro2样式,删除原width动画 */
.intro2 {
  overflow: hidden;
  width: fit-content;
}

/* 调整sub-head样式,用transform替代负margin实现位移 */
.sub-head {
  display: inline-block;
  transform: translateX(-100%);
  animation: slidein 7s infinite;
  font-size: 30px;
  font-family: Arial, Helvetica, sans-serif;
}

/* 简化动画逻辑,删除原reveal动画,合并透明度和位移控制 */
@keyframes slidein {
  0% {
    transform: translateX(-100%);
    opacity: 0;
  }
  20% {
    transform: translateX(-100%);
    opacity: 1;
  }
  35% {
    transform: translateX(0);
    opacity: 1;
  }
  80% {
    transform: translateX(0);
    opacity: 1;
  }
  100% {
    transform: translateX(0);
    opacity: 0;
  }
}

原有JS切换逻辑和intro1的显示动画无需修改,可直接保留使用。

修改后动画只会在.first-box预留的宽度范围内播放,不会向外扩张挤压侧边LOGO的布局空间。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 23:09:01