javascript - 使用 CSS 进行页面转换

标签 javascript html css css-transitions transition

我想将整页转换添加到我的元素中,使其看起来像单页应用程序,但我被卡住了。

我用转换尝试了很多东西:translateXtransitiondisplay: none,但它不能正常工作,因为我想要..

var firstDiv = document.querySelector('#first'),
    secondDiv = document.querySelector('#second'),
    transitionBtn = document.querySelector('#transitionBtn');

function myFunction() {
    firstDiv.classList.remove('active');
    secondDiv.classList.add('active');
}

transitionBtn.addEventListener('click',myFunction);
body {
  padding: 0;
  margin: 0;
}
#first {
  display: flex;
  justify-content: center;
  align-items: center;
  
  background-color: red;
}

#second {  
  background-color: blue;
}

.page{
  width: 100vw;
  height: 100vh;
  transform: translateX(100%);
  display: none;
  transition: ease-in-out 2s all;
}

.page.active {
  transform: translateX(0%);
  display: flex !important;
}
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>JS Bin</title>
</head>
<body>
  <div id="first" class="page active">
    <button id="transitionBtn">Click me to transition</button>
  </div>
  <div id="second" class="page"></div>
</body>
</html>

最佳答案

var firstDiv = document.querySelector('#first'),
    secondDiv = document.querySelector('#second'),
    transitionBtn = document.querySelector('#transitionBtn');

function myFunction() {
    firstDiv.classList.remove('active');
    secondDiv.classList.add('active');
}

transitionBtn.addEventListener('click',myFunction);
body {
  padding: 0;
  margin: 0;
  overflow:hidden;
  
}
#first {
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: red;
}

#second {  
  background-color: blue;
  transform: translateX(-100%);
}

.page{
  width: 100vw;
  height: 100vh;
  transform: translateX(100%);
  transition: ease-in-out 2s all;
  position:absolute;
}

.page.active {
  transform: translateX(0%) !important;
  display: flex !important;
}
 <div id="first" class="page active">
    <button id="transitionBtn">Click me to transition</button>
  </div>
  <div id="second" class="page"></div>

关于javascript - 使用 CSS 进行页面转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48968761/

相关文章:

php - 在 iframe 中隐藏 DIV

javascript - 无法在 IE 8 及以下版本中使用 jQuery 解析文件,因为它不是 XML(即使它有点像 XML)

javascript - iron-flex-layout 未应用于主文档

javascript - 为什么在 innerHTML 中使用 Array#map 输出中的额外逗号?

javascript - 即使在 e.preventDefault() jquery 之后页面也会刷新

javascript - 删除鼠标悬停时的 Canvas 矩形边框

css - 为什么动态生成的内容不改变包含div的高度?

css - 隐藏部分溢出的元素

javascript - 使用 javascript : it wont move 定位 img

jquery - 如何在 jquery 中仅将 css 更改应用于此对象