小米官网登录注册的滑动效果

小米官网登录注册的滑动效果

登录组成页面

            <div class="client">
                <div class="userbox">
                    <div class="title">
                        <a href="javascript:;" class="active" id="DL">登录</a>
                        <a    href="javascript:;"  id="ZC">注册</a>
                    </div>
                    <div class="rebox" style="display: flex;">

                        
                        <div class="register r1">

                            <form id="loginForm" action="#">
                                <input type="text" name="username" id="username" placeholder="邮箱/手机号码/小米ID" required>
                                <span class="error" id="er">请输入账号</span>
                                <div id="pswbox">
                                    <input type="password" name="psw" id="psw" placeholder="密码" required>
                                    <i class="glyphicon glyphicon-eye-close icon3"></i>
                                    <span class="error" id="err">请输入登录密码</span>
                                </div>
                                <p>
                                    <input type="checkbox" name="" id="checkbox">
                                    <span>已阅读并同意小米账号<a href="#"> 用户协议 </a><a href="#">隐私政策</a></span>
                                </p>
                                <input type="submit" id="submit" value="登录">
                            </form>


                            <div class="zh">
                                <a href="#">忘记密码?</a>
                                <a href="#">手机号登录</a>
                            </div>

                            <p class="other">其他方式登录</p>
                            <ul style="list-style-type: none; /* 移除列表项的默认样式(小圆点)*/">
                                <li><a href=""><img src="./image/images/zfb.png" alt=""></a></li>
                                <li><a href=""><img src="./image/images/vx.png" alt=""></a></li>
                                <li><a href=""><img src="./image/images/QQ.png" alt=""></a></li>
                                <li><a href=""><img src="./image/images/wb.png" alt=""></a></li>
                            </ul>
                        </div>
                        
                        <div class="register" style="margin-left: 80px;">
                            <form action="#">
                                <div class="gj">
                                    <input type="text" id="selectedCountry" placeholder="国家/地区">
                                    <i class="icon4"></i>
                                    <div class="gj_name">
                                        <div class="fdj">
                                            <input type="search" placeholder="搜索国家/地区名称" id="gj_search">
                                            <i class="glyphicon glyphicon-search icon5"></i>
                                        </div>
                                        <ul class="country "  style="list-style-type: none; /* 移除列表项的默认样式(小圆点)*/">
                                            <li>佛得角</li>
                                            <li>开曼群岛</li>
                                            <li>中非</li>
                                            <li>乍得</li>
                                            <li>智利</li>
                                            <li>中国</li>
                                            <li>圣诞岛</li>
                                            <li>哥伦比亚</li>
                                        </ul>
                                    </div>
                                </div>
                                


                                <input type="text" placeholder="国家码" id="gjm">
                                <span class="error" id="erro">请输入手机号码</span>
                                <div class="yzm">
                                    <input type="text" placeholder="短信验证码" id="yzm">
                                    <a href="#" class="info">获取验证码</a>
                                    <span class="error" id="eryzm">请输入短信验证码</span>
                                </div>
                                <p>
                                    <input type="checkbox" name="" id="checkbox">
                                    <span>已阅读并同意小米账号<a href="#"> 用户协议 </a><a href="#">隐私政策</a></span>
                                </p>
                                <input type="submit" id="sub" value="注册">
                                <div class="zh">
                                    <a href="#">收不到验证码?</a>
                                </div>
                                <p class="other">其他方式登录</p>
                                <ul style="list-style-type: none; /* 移除列表项的默认样式(小圆点)*/">
                                    <li><a href=""><img src="./image/images/zfb.png" alt=""></a></li>
                                    <li><a href=""><img src="./image/images/vx.png" alt=""></a></li>
                                    <li><a href=""><img src="./image/images/QQ.png" alt=""></a></li>
                                    <li><a href=""><img src="./image/images/wb.png" alt=""></a></li>
                                </ul>
                        </div>


                        
                    </div>



                </div>
                <div class="erweima">
                    <div class="glyphicon glyphicon-qrcode ewm"></div>
                </div>

            </div>

如图

在这里插入图片描述在这里插入图片描述

点击注册的时候可以滑动到注册里面,这里可以使用把他使用display:flex包裹住一个大的div,里面有一个登录div,还有一个注册div,然后设置登录与注册之间的外边距调整他们的距离,然后再使用js绑定事件,进行移动,js代码为






var zc = document.getElementById("ZC");
var dl = document.getElementById("DL");
var rebox = document.querySelector('.rebox');

zc.addEventListener("click", function() {
  zc.style.borderBottom = '3px solid #ff5c00';
  dl.style.borderBottom = 'none';
    animateLeft(rebox, -500, function() {
        console.log('注册页面移动完成');
    });

});

dl.addEventListener("click", function() {
  dl.style.borderBottom = '3px solid #ff5c00';
  zc.style.borderBottom = 'none';
    animateLeft(rebox, 0, function() {
    });
});




function animateLeft(obj, target, callback) {
    clearInterval(obj.timer);
    obj.timer = setInterval(function() {
        var step = (target - obj.offsetLeft) / 10;
        step = step > 0 ? Math.ceil(step) : Math.floor(step);
        if (obj.offsetLeft == target) {
            clearInterval(obj.timer);
            callback && callback();
        }
        obj.style.left = obj.offsetLeft + step + 'px';
    }, 15);
}


首先通过document.getElementById和document.querySelector获取到页面中的注册按钮、登录按钮和包含注册登录内容的容器元素。

给注册按钮和登录按钮分别添加点击事件监听器,当点击注册按钮时,注册按钮底部加粗显示,登录按钮取消底部加粗显示,并通过animateLeft函数将包含注册登录内容的容器元素向左移动500px,达到切换效果;当点击登录按钮时,登录按钮底部加粗显示,注册按钮取消底部加粗显示,并通过animateLeft函数将包含注册登录内容的容器元素移动回原位0px。

animateLeft函数用于实现元素的动画移动效果,通过设置定时器不断更新元素的left属性值,直到达到目标位置时清除定时器并执行回调函数。

  • 注意
  1. 如果有多显示的内容,或者显示不足,就是登录和注册之间的两个div距离不够,这时候就需要添加他们的左右边距,比如
   <div class="register" style="margin-left: 80px;">

在第二个注册页加上左边距,加了左边距之后需要调整滑动的距离到正确的位置

比如

    animateLeft(rebox, -500, function() {
       console.log('注册页面移动完成');
   });
  • 9
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

pofenx

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值