如何创建:“即将上线”页面

学习如何使用 CSS 和 JavaScript 创建一张“即将上线”页面。

Experimente pessoalmente

如何创建“即将上线”页面

第一步 - 添加 HTML:

在我们的例子中,我们将使用覆盖整个页面的背景图像,并在图像中放置一些文本,以便让用户知道正在发生什么。

本例演示了如何使用 HTML 和 CSS 创建“即将上线”页面。请查看下一个例子,了解如何使用 JavaScript 添加“倒计时定时器”。

<div class="bgimg">
  <div class="topleft">
    <p>Logo</p>
  </div>
  <div class="middle">
    <h1>COMING SOON</h1>
    <hr>
    <p id="demo">35 days</p>
  </div>
  <div class="bottomleft">
    <p>Some text</p>
  </div>
</div>

第二步 - 添加 CSS:

/* 将 body 和 html 的高度设置为 100%,以使背景图像覆盖整个页面:*/
body, html {
  height: 100%
}
.bgimg {
  /* 背景图 */
  background-image: url('/w3images/forestbridge.jpg');
  /* 全屏 */
  height: 100%;
  /* 居中背景图像 */
  background-position: center;
  /* 放大图像 */
  background-size: cover;
  /* 添加 position: relative 以启用图像内部的绝对定位元素(放置文本) */
  position: relative;
  /* 为 .bgimg 容器内的所有元素添加白色文本颜色 */
  color: white;
  /* 添加字体 */
  font-family: "Courier New", Courier, monospace;
  /* 将字体大小设置为 25 像素 */
  font-size: 25px;
}
/* 在左上角定位文本 */
.topleft {
  position: absolute;
  top: 0;
  left: 16px;
}
/* 在左下角定位文本 */
.bottomleft {
  position: absolute;
  bottom: 0;
  left: 16px;
}
/* 定位文本在中间 */
.middle {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  text-align: center;
}
/* Defina o estilo do elemento <hr> */
hr {
  margin: auto;
  width: 40%;
}

Experimente pessoalmente

Passo 3 - Adicione JavaScript:

Adicione JavaScript para criar um cronômetro:

// Defina a data para a contagem regressiva
var countDownDate = new Date("Jan 5, 2024 15:37:25").getTime();
// Atualize a contagem regressiva a cada 1 segundo
var x = setInterval(function() {
  // Obtenha a data e hora de hoje
  var now = new Date().getTime();
  // Cálculo da distância entre a data atual e a data da contagem regressiva
  var distance = countDownDate - now;
  // Cálculo de tempo para dias, horas, minutos e segundos
  var days = Math.floor(distance / (1000 * 60 * 60 * 24));
  var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
  var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
  var seconds = Math.floor((distance % (1000 * 60)) / 1000);
  // Exiba o resultado no elemento com id="demo"
  document.getElementById("demo").innerHTML = days + "d " + hours + "h ";
  + minutes + "m " + seconds + "s ";
  // Se o contagem regressiva terminar, escreva alguns textos.
  if (distance < 0) {
    clearInterval(x);
    document.getElementById("demo").innerHTML = "EXPIRED";
  }

Experimente pessoalmente