我有一个网站,当用户加载页面时,我希望标题一从左侧滑入,并将其不透明度更改为1.而对于标题二,我只希望不透明度更改.但由于某些原因,它是立即发生的,而不是在2秒的持续时间内.

这是我在这里的第一个帖子,我觉得自己很傻,但所有的帮助我都会感激的. 如果您还有其他需要的信息,请告诉我.

以下是我用来复制问题的基本代码:

document.addEventListener("DOMContentLoaded", function() {
  setTimeout(function() {
    var headingOne = document.querySelector(".header-one-hiding");
    var headingTwo = document.querySelector(".header-two-hiding");

    headingOne.classList.remove("header-one-hiding");
    headingOne.classList.add("header-one-show");

    headingTwo.classList.remove("header-two-hiding");
    headingTwo.classList.add("header-two-show");
  }, 1000);
});
.header-one-hiding {
  opacity: 0;
  left: -1000px;
  position: relative;
  transition: opacity 2s ease, left 2s ease;
}

.header-one-show {
  opacity: 1;
  left: 0px;
}

.header-two-hiding {
  opacity: 0;
  transition: opacity 2s ease;
}

.header-two-show {
  opacity: 1;
}
<!DOCTYPE html>
<html>

<head></head>

<body>
  <div class="header-one-hiding">Header One</div>
  <div class="header-two-hiding">Header Two</div>

</body>

</html>

推荐答案

您将从元素中删除-hiding个类,因此transition个属性也将与它们一起删除.这意味着,当你想让它们过渡时,使其过渡的部分不再使用.将另一个类添加到isn't删除的两个标头中,以便在显示时不会删除该属性.

document.addEventListener("DOMContentLoaded", function() {
  setTimeout(function() {
    var headingOne = document.querySelector(".header-one-hiding");
    var headingTwo = document.querySelector(".header-two-hiding");

    headingOne.classList.remove("header-one-hiding");
    headingOne.classList.add("header-one-show");

    headingTwo.classList.remove("header-two-hiding");
    headingTwo.classList.add("header-two-show");
  }, 1000);
});
.header-one {
  position: relative;
  transition: opacity 2s ease, left 2s ease;
}

.header-two {
  transition: opacity 2s ease;
}

.header-one-hiding {
  opacity: 0;
  left: -1000px;
}

.header-one-show {
  opacity: 1;
  left: 0px;
}

.header-two-hiding {
  opacity: 0;
}

.header-two-show {
  opacity: 1;
}
<!DOCTYPE html>
<html>

<head></head>

<body>
  page loaded (for debugging)
  <div class="header-one header-one-hiding">Header One</div>
  <div class="header-two header-two-hiding">Header Two</div>

</body>

</html>

Javascript相关问答推荐

如何确保滚动时响应式图像保持在文本图像布局中的顶部?

如何在pixi js中画一条简单的线

为什么这个自定义组件会被放置在TR之外?

如何避免使用ajax在Vue 3合成API中重定向

如何保持子画布元素的1:1宽高比?

如何在JavaScript中在文本内容中添加新行

如何在RTK上设置轮询,每24小时

django无法解析余数:[0] from carray[0]'

如何在Angular中插入动态组件

Next.js(react)使用moment或不使用日期和时间格式

Angular 17—每当一个布尔变量变为真时触发循环轮询,只要它保持为真

如何在Obsidian dataview中创建进度条

你怎么看啦啦队的回应?

cypress中e2e测试上的Click()事件在Switch Element Plus组件上使用时不起作用

如何通过使用vanilla JS限制字体大小增加或减少两次来改变字体大小

加载背景图像时同步旋转不显示的问题

ChartJs未呈现

连接到游戏的玩家不会在浏览器在线游戏中呈现

从逗号和破折号分隔的给定字符串中查找所有有效的星期几

使用自动识别发出信号(&Q)