Html 炫酷登陆窗口

<!DOCTYPE html>

<html lang="en">

<!-- https://codepen.io/danielkvist/pen/LYNVyPL -->

<head>

  <meta charset="UTF-8">

  <meta name="viewport" content="width=device-width, initial-scale=1.0">

  <title>Document</title>

  <style>

    :root {

      /* COLORS */

      --white: #e9e9e9;

      --gray: #333;

      --blue: #0367a6;

      --lightblue: #008997;

      /* RADII */

      --button-radius: 0.7rem;

      /* SIZES */

      --max-width: 758px;

      --max-height: 420px;

      font-size: 16px;

      font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen,

        Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;

    }

    body {

      align-items: center;

      background-color: var(--white);

      background: url("https://res.cloudinary.com/dbhnlktrv/image/upload/v1599997626/background_oeuhe7.jpg");

      /* 决定背景图像的位置是在视口内固定,或者随着包含它的区块滚动。*/

      /* https://developer.mozilla.org/zh-CN/docs/Web/CSS/background-attachment */

      background-attachment: fixed;

      background-position: center;

      background-repeat: no-repeat;

      background-size: cover;

      display: grid;

      height: 100vh;

      place-items: center;

    }

    .form__title {

      font-weight: 300;

      margin: 0;

      margin-bottom: 1.25rem;

    }

    .link {

      color: var(--gray);

      font-size: 0.9rem;

      margin: 1.5rem 0;

      text-decoration: none;

    }

    .container {

      background-color: var(--white);

      border-radius: var(--button-radius);

      box-shadow: 0 0.9rem 1.7rem rgba(0, 0, 0, 0.25),

        0 0.7rem 0.7rem rgba(0, 0, 0, 0.22);

      height: var(--max-height);

      max-width: var(--max-width);

      overflow: hidden;

      position: relative;

      width: 100%;

    }

    .container__form {

      height: 100%;

      position: absolute;

      top: 0;

      transition: all 0.6s ease-in-out;

    }

    .container--signin {

      left: 0;

      width: 50%;

      z-index: 2;

    }

    .container.right-panel-active .container--signin {

      transform: translateX(100%);

    }

    .container--signup {

      left: 0;

      opacity: 0;

      width: 50%;

      z-index: 1;

    }

    .container.right-panel-active .container--signup {

      animation: show 0.6s;

      opacity: 1;

      transform: translateX(100%);

      z-index: 5;

    }

    .container__overlay {

      height: 100%;

      left: 50%;

      overflow: hidden;

      position: absolute;

      top: 0;

      transition: transform 0.6s ease-in-out;

      width: 50%;

      z-index: 100;

    }

    .container.right-panel-active .container__overlay {

      transform: translateX(-100%);

    }

    .overlay {

      background-color: var(--lightblue);

      background: url("https://cdn.pixabay.com/photo/2018/08/14/13/23/ocean-3605547_1280.jpg");

      background-attachment: fixed;

      background-position: center;

      background-repeat: no-repeat;

      background-size: cover;

      height: 100%;

      left: -100%;

      position: relative;

      transform: translateX(0);

      transition: transform 0.6s ease-in-out;

      width: 200%;

    }

    .container.right-panel-active .overlay {

      transform: translateX(50%);

    }

    .overlay__panel {

      align-items: center;

      display: flex;

      flex-direction: column;

      height: 100%;

      justify-content: center;

      position: absolute;

      text-align: center;

      top: 0;

      transform: translateX(0);

      transition: transform 0.6s ease-in-out;

      width: 50%;

    }

    .overlay--left {

      transform: translateX(-20%);

    }

    .container.right-panel-active .overlay--left {

      transform: translateX(0);

    }

    .overlay--right {

      right: 0;

      transform: translateX(0);

    }

    .container.right-panel-active .overlay--right {

      transform: translateX(20%);

    }

    .btn {

      background-color: var(--blue);

      background-image: linear-gradient(90deg, var(--blue) 0%, var(--lightblue) 74%);

      border-radius: 20px;

      border: 1px solid var(--blue);

      color: var(--white);

      cursor: pointer;

      font-size: 0.8rem;

      font-weight: bold;

      letter-spacing: 0.1rem;

      padding: 0.9rem 4rem;

      text-transform: uppercase;

      transition: transform 80ms ease-in;

    }

    .form>.btn {

      margin-top: 1.5rem;

    }

    .btn:active {

      transform: scale(0.95);

    }

    .btn:focus {

      outline: none;

    }

    .form {

      background-color: var(--white);

      display: flex;

      align-items: center;

      justify-content: center;

      flex-direction: column;

      padding: 0 3rem;

      height: 100%;

      text-align: center;

    }

    .input {

      background-color: #fff;

      border: none;

      padding: 0.9rem 0.9rem;

      margin: 0.5rem 0;

      width: 100%;

    }

    @keyframes show {

      0%,

      49.99% {

        opacity: 0;

        z-index: 1;

      }

      50%,

      100% {

        opacity: 1;

        z-index: 5;

      }

    }

</style>

</head>

<body>

  <div class="container right-panel-active">

    <!-- Sign Up -->

    <div class="container__form container--signup">

      <form action="#" class="form" id="form1">

        <h2 class="form__title">Sign Up</h2>

        <input type="text" placeholder="User" class="input" />

        <input type="email" placeholder="Email" class="input" />

        <input type="password" placeholder="Password" class="input" />

        <button class="btn">Sign Up</button>

      </form>

    </div>

    <!-- Sign In -->

    <div class="container__form container--signin">

      <form action="#" class="form" id="form2">

        <h2 class="form__title">Sign In</h2>

        <input type="email" placeholder="Email" class="input" />

        <input type="password" placeholder="Password" class="input" />

        <a href="#" class="link">Forgot your password?</a>

        <button class="btn">Sign In</button>

      </form>

    </div>

    <!-- Overlay -->

    <div class="container__overlay">

      <div class="overlay">

        <div class="overlay__panel overlay--left">

          <button class="btn" id="signIn">Sign In</button>

        </div>

        <div class="overlay__panel overlay--right">

          <button class="btn" id="signUp">Sign Up</button>

        </div>

      </div>

    </div>

  </div>

  <script>

    const signInBtn = document.getElementById("signIn");

    const signUpBtn = document.getElementById("signUp");

    const fistForm = document.getElementById("form1");

    const secondForm = document.getElementById("form2");

    const container = document.querySelector(".container");

    signInBtn.addEventListener("click", () => {

      container.classList.remove("right-panel-active");

    });

    signUpBtn.addEventListener("click", () => {

      container.classList.add("right-panel-active");

    });

    fistForm.addEventListener("submit", (e) => e.preventDefault());

    secondForm.addEventListener("submit", (e) => e.preventDefault());

</script>

</body>

</html>

为了实现Vue3炫酷登陆界面,你可以按照以下步骤进行准备和操作: 1. 首先,你需要导入element-plus和particles.vue3这两个包。你可以使用以下命令来导入它们: ```shell # 使用yarn yarn add element-plus particles.vue3 # 使用npm npm install element-plus particles.vue3 --save ``` 2. 导入所需的组件和样式。在你的Vue3项目中,你可以在需要使用的组件中导入element-plus和particles.vue3,并按需加载所需的样式。确保你已经正确配置了vite.config.ts文件,以确保按需加载生效。 3. 在Vue3组件中使用element-plus和particles.vue3。你可以使用element-plus提供的各种组件来构建炫酷登陆界面,比如按钮、表单、输入框等。同时,你可以使用particles.vue3来添加粒子效果,使登陆界面更加动态和吸引人。 4. 根据你的设计和需求,使用Vue3的模板语法和组件功能构建炫酷登陆界面。你可以使用element-plus提供的组件来构建表单,处理用户的输入和验证。同时,你可以使用particles.vue3来添加背景粒子效果,提升界面的视觉效果。 记住,在使用element-plus和particles.vue3之前,确保你已经正确导入了这两个包,并按照需要在组件中使用它们。同时,根据你的项目配置和需求,可能需要进行一些额外的配置。 希望这些步骤可以帮助你实现一个炫酷的Vue3登陆界面!<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [使用vue3+element-plus+particles实现炫酷(粒子背景)登陆界面](https://blog.csdn.net/m0_61470934/article/details/130240904)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值