javascript - 响应地重叠 2 个段落

标签 javascript css

对于一个元素,我想要一些段落从一个文本内容过渡到另一个文本内容。我想使用的方法是在我的 HTML 中有两个段落,但一次只能看到一个。

我的过渡工作正常,但我找不到以响应方式重叠两个段落的方法。有人知道如何进行这项工作吗?

这是我到目前为止所拥有的(我所缺少的只是响应段落重叠):

var a = document.getElementById("switch");
a.onclick = function() {
  document.getElementById("container").classList.toggle("show1");
  document.getElementById("container").classList.toggle("show2");
  return false;
}
#container {
  border: 1px solid red;
}
.text1,
.text2 {
  transition: opacity 1s ease;
  opacity: 0;
  border: 1px solid blue;
}
.show1 > .text1,
.show2 > .text2 {
  opacity: 1;
}
<div id="container" class="show1">
  <p class="text1">
    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi vel ipsum dolor. Nulla vitae laoreet turpis.
  </p>
  <p class="text2">
    Proin feugiat ex est, a sollicitudin felis tincidunt at. Fusce quis quam ut nisl feugiat fermentum blandit non metus.
  </p>
</div>
<a id="switch" href="#">Switch paragraph</a>

如果这只是一个糟糕的方法,请告诉我。

我希望它具有响应性而不依赖绝对定位或 -104px 边距的原因是因为我想在段落以外的其他事物(按钮、导航栏等)上使用此方法,而不仅仅是因为我希望它在较小的屏幕上看起来不错(即使我确实希望它在较小的屏幕上看起来不错!):)

最佳答案

这是我能做的最好的,符合您的描述。我们在这里缺少太多约束,无法在所有情况下正确显示叠加段落...

var a = document.getElementById("switch");
a.onclick = function() {
  document.getElementById("container").classList.toggle("show1");
  document.getElementById("container").classList.toggle("show2");
  return false;
}
#container {
  border: 1px solid red;
  position: relative;
}
.text1,
.text2 {
  transition: opacity 1s ease;
  opacity: 0;
  border: 1px solid blue;
}
.show1 > .text1,
.show2 > .text2 {
  opacity: 1;
}

.show1 > .text2,
.show2 > .text1{
   position: absolute;
   top: 0;
   left: 0;
   right: 0;
}
<div id="container" class="show1">
  <p class="text1">
    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi vel ipsum dolor. Nulla vitae laoreet turpis.
  </p>
  <p class="text2">
    Proin feugiat ex est, a sollicitudin felis tincidunt at. Fusce quis quam ut nisl feugiat fermentum blandit non metus.
  </p>
</div>
<a id="switch" href="#">Switch paragraph</a>

关于javascript - 响应地重叠 2 个段落,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34090878/

相关文章:

css/html 在无序列表中对齐图像上方的文本

css 覆盖宽度

javascript - Konva中如何实现兵力布局网络?

Javascript:从字符串数组创建字典

javascript - 另一个选择中的正则表达式选择

javascript - Nativescript ios - 命令 xcodebuild 失败,退出代码为空

javascript - 一次只显示三个 Div

css - Flexbox 在 IE10+ 和 Edge 中无法正常工作//div 之间的滚动条上出现奇怪的线条

CSS div 页脚和列高问题

html - 边框半径属性 |在 iPad 上显示不正确,但在 iMAC 上显示不正确