在login界面使用js完成简单的登陆与注册表单切换动画

下拉图片右上角的注册实现表单切换!

<!DOCTYPE html>
<html lang="zh-CN">
    <head>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <title>Document</title>
        <style>
            * {
                margin: 0;
                padding: 0;
            }

            .box {
                height: 100vh;
                background: linear-gradient(to top right, #FFDAB9, #FFFAFA, #FFFAFA);
            }

            .loginSubject {
                display: flex;
                position: absolute;
                left: 0;
                right: 0;
                top: 0;
                bottom: 0;
                margin: auto;
                width: 700px;
                height: 350px;
                border-radius: 5px;
                box-shadow: 10px 10px 15px -10px;
            }

            .rightLogin,
            .rightRigister {
                border-radius: 10px;
                position: relative;
                height: 71.5%;
                border-radius: 3px;
                padding: 50px 10px;
                background: linear-gradient(to top right, #FFFAFA, #FFDAB9, #FF6347);
                display: flex;
                flex-direction: column;
                transition: all 0.5s 0s;
            }

            .leftImg img {
                border-radius: 5px;
                width: 100%;
                height: 100%;
            }
            input {
                color: #ff856f;
                border-radius: 5px;
                text-indent: 10px;
                height: 30px;
                font-size: 12px;
                border: none;
                margin-bottom: 20px;
                margin-right: 20px;
                outline: none;
                width: 200px;
            }
            .rightLogin>button,
            .rightRigister>button {
                width: 150px;
                height: 25px;
                font-size: 10px;
                border: none;
                border-radius: 5px;
                margin: 0 auto;
                margin-top: 80px;
                background: #fffafa;
                 transition: all 0.5s;
            }
            .rightLogin>button:hover,
            .rightRigister>button:hover {
                background-color: #ffbd9d;
                cursor: pointer;
                width: 180px;
                height: 30px;
                color: #FFFAFA;
            }

            .loginSpan {
                letter-spacing: 2px;
                color: #75757e;
                font-size: 15px;
                position: absolute;
                top: 10px;
            }

            button::after {
                display: inline-block;
                content: '';
                top: 0;
                border: 1px solid #ffede0;
                position: absolute;
                height: 30px;
                right: 30px;
                background-color: red;
            }

            .register {
                user-select: none;
                border-radius: 2px;
                position: absolute;
                display: block;
                font-size: 10px;
                width: 40px;
                text-align: center;
                height: 20px;
                line-height: 20px;
                right: 10px;
                top: 15px;
                cursor: pointer;
                color: #ff6a4e;
                background-color: #ffeee2;
            }

            .loginform {
                overflow: hidden;
            }
        </style>

        <script>
            let x = 0;
            let y = 0;
            let l = 0;
            let t = 0;
            let isDown = false;
            window.addEventListener('load', function() {
                let register = document.querySelectorAll('.register');
                let rightLogin = document.querySelector('.rightLogin');
                let rightRigister = document.querySelector('.rightRigister');
                for (let i = 0; i < register.length; i++) {
                    register[i].onmousedown = function(e) {
                        y = e.clientY;
                        t = register[i].offsetTop;
                        isDown = true;
                    }
                }
                for (let i = 0; i < register.length; i++) {
                    register[i].onmousemove = function(e) {
                        if (isDown == false) {
                            return;
                        }
                        let ny = e.clientY;
                        let nt = ny - (y - t);
                        if (nt <= 25) {
                            register[i].style.top = nt + 'px';
                            setTimeout(function() {
                                if (i == 1) {
                                    rightLogin.style.marginTop = 0 + '%';
                                    rightRigister.style.marginTop = 0 + '%';
                                } else {
                                    rightLogin.style.marginTop = -320 + '%';
                                    rightRigister.style.marginTop = 160 + '%';
                                }
                            }, 1000)
                        }
                        if (nt <= 15) {
                            register[i].style.top = t + 'px';
                        }
                    }
                }
                document.onmouseup = function() {
                    for (let i = 0; i < register.length; i++) {
                        register[i].style.top = 15 + 'px';
                        isDown = false;
                    }
                }
            })
        </script>
    </head>
    <body>
        <div class="box">
            <div class="loginSubject">
                <div class="leftImg">
                    <img src="./img/u=1732966997,2981886582&fm=193&f=GIF.jpg" alt="">
                </div>
                <form action="" class="loginform">
                    <div class="rightRigister">
                        <span class="loginSpan">欢迎注册</span>
                        <input type="text" placeholder="输入账号">
                        <input type="text" placeholder="输入密码">
                        <input type="text" placeholder="输入短信验证">
                        <button type="submit">注册</button>
                        <span class="register"  title="下拉">登录</span>
                    </div>
                    <div class="rightLogin">
                        <span class="loginSpan">欢迎登录</span>
                        <input type="text" placeholder="输入账号">
                        <input type="text" placeholder="输入密码">
                        <input type="text" placeholder="输入短信验证">
                        <button type="submit">登录</button>
                        <span class="register" title="下拉">注册</span>
                    </div>

                </form>
            </div>
        </div>

    </body>
</html>

创作不易,点个赞再走吧,哈哈哈

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
可以使用 JavaScript 来实现登录界面和注册页面左右切换。以下是一种实现方式: 首先,在 HTML 中添加两个容器,一个用于登录,一个用于注册。并为它们添加一个共同的父容器,用于包含它们。 ```html <div class="container"> <div class="form-container sign-in-container"> <!-- 登录表单 --> </div> <div class="form-container sign-up-container"> <!-- 注册表 --> </div> <div class="overlay-container"> <!-- 切换按钮 --> <button class="overlay-btn" id="signIn">登录</button> <button class="overlay-btn" id="signUp">注册</button> </div> </div> ``` 接下来,在 CSS 中设置两个表单容器的样式。为了使它们在同一位置,可以使用绝对定位,并将其中一个容器的 `left` 属性设置为 100%,使其隐藏。 ```css .container { position: relative; height: 100vh; } .form-container { position: absolute; top: 0; width: 100%; height: 100%; transition: all 0.6s ease-in-out; } .sign-in-container { left: 0; } .sign-up-container { left: 100%; } ``` 然后,在 JavaScript 中监听登录和注册按钮的点击事件,并根据它们的状态切换表单容器的位置。 ```javascript const signInBtn = document.getElementById('signIn'); const signUpBtn = document.getElementById('signUp'); const formContainer = document.querySelector('.container'); signInBtn.addEventListener('click', () => { formContainer.classList.remove('sign-up-mode'); }); signUpBtn.addEventListener('click', () => { formContainer.classList.add('sign-up-mode'); }); ``` 最后,在 CSS 中添加 `.sign-up-mode` 类的样式,用于将注册表容器显示出来。 ```css .sign-up-mode .sign-in-container { left: -100%; } .sign-up-mode .sign-up-container { left: 0; } ``` 这样,当用户点击登录按钮时,注册表容器将从右侧滑入,并隐藏登录表单容器。同样地,当用户点击注册按钮时,登录表单容器将从左侧滑出,并显示注册表容器。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值