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

news2025/1/17 3:15:23

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

登录组成页面

            <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('注册页面移动完成');
   });

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1513373.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

250+可用的 AI 资源网站

&#x1f482; 个人网站:【 海拥】【神级代码资源网站】【办公神器】&#x1f91f; 基于Web端打造的&#xff1a;&#x1f449;轻量化工具创作平台&#x1f485; 想寻找共同学习交流的小伙伴&#xff0c;请点击【全栈技术交流群】 这里是关于AI网站的一份资源列表。欢迎访问该链…

message: apoc.meta.data is unavailable

报错内容 Traceback (most recent call last):File "/langchain-master/templates/neo4j-semantic-ollama/ingest.py", line 9, in <module>graph Neo4jGraph()File "/root/anaconda3/envs/sakura/lib/python3.9/site-packages/langchain_community/gra…

智慧农业新篇章:DSSAT模型、APSIM模型、WOFOST与PCSE模型综合应用,引领作物生长模拟与产量预测新潮流

目录 ★WOFOST模型与PCSE模型应用 ★基于R语言APSIM模型进阶应用与参数优化、批量模拟 ★最新DSSAT作物模型建模方法及应用 ★基于Python语言快速批量运行DSSAT模型及交叉融合、扩展应用 ★R语言与作物模型&#xff08;以DSSAT模型为例&#xff09;融合应用 ★遥感数据与…

酷开科技以消费者需求为导向冲刺OTT行业的星辰大海

通过大屏营销、互动营销等方式&#xff0c;提升品牌认知度和市场竞争力。酷开科技始终坚持以消费者的需求为导向&#xff0c;致力于为品牌方和消费者搭建高效、准确的沟通桥梁&#xff0c;开创OTT大屏营销新纪元。 伴随技术发展&#xff0c;智能电视已经从“尝鲜”变成了主流产…

C# Web自动化--Selenium入门

安装依赖库 需要引用的核心库是Selenium.RC&#xff0c;Selenium.Support&#xff0c;Selenium.WebDriver 然后再需要引用 浏览器驱动库&#xff0c;这里我以IE浏览器为例&#xff0c;Chrome使用方式跟IE是一样的&#xff0c;程序包名称为Selenium.WebDriver.ChromeDriver。 …

静电ESD整改:原因、影响与解决方案详解?|深圳比创达电子

静电&#xff08;ESD&#xff09;是在日常生活和工作中常见的现象&#xff0c;但它可能对电子设备和器件造成严重的损坏。本文将介绍静电ESD的定义、原因、影响以及解决方案&#xff0c;帮助大家更好地了解ESD问题&#xff0c;并采取相应的整改措施。 一、静电ESD的定义 静电…

技术驱动校园招聘:Java+SpringBoot+Vue的实践之旅

✍✍计算机编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java实战 |…

【Linux操作系统】:Linux进程概念(2)

一、Z(zombie)-僵尸进程 1.僵尸进程概念 故事 张三每天都有跑步的习惯&#xff0c;这一天他和往常一样跑步&#xff0c;跑了两三圈&#xff0c;突然跑在它前面的一个人倒在地上不动了&#xff0c;作为热心市民张三赶紧报警并且拨打120。很快120就来了&#xff0c;但是没过几分…

Docker单机下的容器网络管理

Docker容器网络管理 容器网络类型 Docker安装以后&#xff0c;会在我们的主机上创建三个网络 docker network ls可以看到有bridge、host和none三种网络类型 我们先把ubuntu的网络环境配置一下 docker run -it ubuntu apt update apt install net-tools iputils-ping curl这…

移速u盘怎么恢复彻底删除的文件,移速u盘彻底删除的文件如何恢复

移速u盘怎么恢复彻底删除的文件&#xff1f;在日常使用中&#xff0c;我们经常会遇到需要删除U盘中的文件的情况。然而&#xff0c;有时候我们可能会不小心将重要的文件彻底删除&#xff0c;导致数据的丢失。对于移速U盘用户来说&#xff0c;如何恢复彻底删除的文件成为了一个备…

江科大stm32学习笔记——【6-1】TIM定时中断

一.定时器 1.类型 STM32F103C8T6定时器资源&#xff1a;TIM1,TIM2,TIM3,TIM4 我们这次用通用定时器 2.基本定时器 预分频器对来自RCC_TIMxCLK的72MHz进行预分频&#xff0c;比如写0就是不分频或1分频&#xff0c;输出频率输入频率72MHz。写1就是2分频&#xff0c;输出频率输…

Java复习01 集合概念

Java复习01 集合 在Java中&#xff0c;集合&#xff08;Collections&#xff09;是一种用来存储一组对象的结构。想象一下有一个装东西的箱子&#xff0c;这个箱子可以装很多不同类型的东西&#xff0c;例如书、DVD或者玩具。Java的集合也是这样&#xff0c;但是它专门用来装载…

如何利用工业以太网关实现上位机无线远程控制多台plc通讯?

组态软件与西门子S7系列PLC及三菱PLC间的无线通信测试需要用到以下设备&#xff1a; l 西门子PLC型号&#xff1a;S7-200Smart 2台 l 三菱PLC型号&#xff1a;FX5U 2台 l 上位机&#xff1a;力控V7.1 1台 l 无线通讯终端&#xff08;网口版&#xff09;——DTD418MB 3块…

群控软件代理,群控服务器配置要求

目录 前言 硬件要求 操作系统要求 代理软件要求 网络要求 1. 在群控服务器上安装Shadowsocks软件 2. 配置本地代理软件 3. 配置浏览器代理 前言 群控软件代理是指在进行群控活动时&#xff0c;利用代理服务器来隐藏真实的IP地址&#xff0c;以保护个人隐私或绕过一些网…

概率与常见的概率分布

概率是数据分析、机器学习中最基础的知识。也是在生活中最实用的一门学科&#xff0c;学了很多大道理不一定能过好一生&#xff0c;学好概率则有一定概率会变得更好。为大概率坚持&#xff0c;为小概率备份。 概率与分布 要想了解概率&#xff0c;首先得搞清楚概率和概率分布的…

「飞桨星河社区创作者激励计划」全新上线!丰富权益,等你领取~

为了助力更多的创作者实现在飞桨星河社区的成长&#xff0c;同时鼓励创作者们积极投入&#xff0c;记录创作者们的高光时刻&#xff0c;重磅推出**「创作者成长体系」&#xff0c;同时推出「每周精选&月度榜单」**活动&#xff0c;期待你一同加入精彩纷呈的AI学习与创作之旅…

学成在线_课程预览-视频播放测试_视频加载出错

问题 在进行课程预览界面的视频播放测试时界面提示视频加载出错。 如图所示JAVA特性讲解的第一小节视频加载出错。 查看课程计划会发现该小节已经进行了视频关联。 问题原因 此课程小节的关联视频在我们自己的minIO的桶中并不存在。所以前端从数据库中拿到的关联视频url是…

AI情报专刊来啦!《“AI换脸”威胁研究与安全策略》

目录 “AI换脸”常见的诈骗套路 1、伪造账号造谣传谣 2、冒充熟人进行诈骗 3、伪造身份申请银行贷款 4、“网络钓鱼”更加难以识别 5、冒充他人远程面试入职 6、冒名登录盗走银行余额 “AI换脸”的产业链 “AI换脸”使用到的技术 人脸识别和关键点检测 图像/视频合成技术 生成对…

【兔子机器人】修改GO、车轮电机ID(软件方法、硬件方法)以及修正VMC腿部初始化夹角

一、GO电机修改ID 1、硬件方法 利用上位机直接修改GO电机的id号&#xff1a; 打开调试助手&#xff0c;点击“调试”&#xff0c;查询电机&#xff0c;修改id号&#xff0c;即可。 但先将四个GO电机连接线拔掉&#xff0c;不然会将连接的电机一并修改。 利用24V电源给GO电机…

Redis命名设计

可读性和管理性 以项目名为前缀(防止key冲突)&#xff0c;用冒号分隔&#xff0c;比如项目名:表名:id zh(知乎):news_data(新闻数据):2(主键id) zh:news_data:2 精简性 key的命名&#xff0c;尽量精简&#xff0c;key的名字长度对内存的占用不可忽视&#xff0c;我们来实际…