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

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

登录组成页面

            <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.mzph.cn/news/741741.shtml

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

相关文章

使用tui-image-editor 图片编辑 标注图片

需求背景&#xff1a; 鼠标悬浮在图片上 出现编辑按钮 点击编辑 对该图片进行编辑&#xff08;输入文案、涂鸦、标记、裁剪等&#xff09; 可以体验一下它线上编辑器 Image-editor | TOAST UI :: Make Your Web Delicious! 使用 首先在你的前端项目中安装&#xff1a; np…

高概率文字生成Stable Cascade Comfyui极简安装教程

Stable Diffisuin 2.1之前的模型的痛点是不能生成文字&#xff0c;SDXL能生成文字&#xff0c;但正确率极低。Stable Diffusion 3据说能生成高画质图的同时&#xff0c;还能正确输出文字&#xff0c;但......还不能下载到。这中间stability.ai出了一个Stable Cascade模型。工作…

多模态大模型Claude 3正式接入集简云与语聚!对标GPT-4且支持中文

自OpenAI发布GPT-4以来&#xff0c;引发了业务模式与应用使用的巨大变革&#xff0c;掀起了各大企业对于多模态大模型的研究热潮。3月初&#xff0c;AnthropicClaude在官网正式发布Claude 3系列多模态大模型&#xff0c;据了解&#xff0c;该模型在多个维度上超越了GPT-4&#…

高铁列车员信息宣传向媒体投稿有哪些方法?

作为一名高铁列车工作人员,我肩负着传递高铁精神、展示列车员风采的重要使命。每月,我都要完成单位对外信息宣传的考核任务,通过媒体投稿来发表列车员的信息宣传文章。在这条信息宣传之路上,我经历了从摸着石头过河到智慧投稿的蜕变,其中的心酸与轻松交织,成为了我职业生涯中难…

在Linux中进行OpenSSH升级

由于OpenSSH有严重漏洞&#xff0c;因此需要升级OpenSSH到最新版本。 OpenSSL和OpenSSH都要更新&#xff0c;OpenSSH依赖于OpenSSL。 第一步&#xff0c;查看当前的OpenSSH服务版本。 命令&#xff1a;ssh -V 第二步&#xff0c;安装、启动telnet&#xff0c;关闭安全文件&a…

基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的癌症图像检测系统(深度学习模型+UI界面代码+训练数据集)

摘要&#xff1a;本篇博客深入介绍了如何借助深度学习技术开发癌症图像检测系统&#xff0c;以提高医疗诊断的精度和速度。系统基于先进的YOLOv8算法&#xff0c;并对比分析了YOLOv7、YOLOv6、YOLOv5的性能&#xff0c;如mAP和F1 Score。详细解释了YOLOv8的原理&#xff0c;并附…

如何设计一个高并发的系统--简谈

设计一个高并发系统可以从下面这些角度来考虑。 所谓设计高并发系统&#xff0c;就是设计一个系统&#xff0c;保证它整体可用的同时&#xff0c;能够处理很高的并发用户请求&#xff0c;能够承受很大的流量冲击。 我们要设计高并发的系统&#xff0c;那就需要处理好一些常见…

JVM是如何运行的

JVM&#xff08;Java Virtual Machine&#xff0c;Java虚拟机&#xff09;是 Java 程序的运行环境&#xff0c;它负责将 Java 字节码翻译成机器代码并执行。也就是说 Java 代码之所以能够运行&#xff0c;主要是依靠 JVM 来实现的。 JVM 整体的大概执行流程是这样的&#xff1…

国产AI视频技术迎来新成员Etna,4K 60帧 15秒超高清视频

国内AI视频技术领域传来好消息&#xff0c;一款名为Etna的AI视频生成工具引起了业界的广泛关注。这款由七火山公司开发的技术&#xff0c;号称能够实现15秒4K 60帧的超高清视频生成&#xff0c;让人眼前一亮&#xff01; &#x1f680; 国产技术的崛起 Etna的问世&#xff0c;…

Lazada全托管是什么?Lazada全托管ERP哪个好用?

做工厂及拥有自有品牌的你&#xff0c;是否因为跨境的头程费用、仓储费用、尾程费用如何结算而烦恼&#xff1f;是否因为不懂市场、不懂运营、不够专业而对跨境电商领域望而却步&#xff1f;那么&#xff0c;你或许可以尝试全托管。 一、什么是全托管 全托管是近两年电商领域…

【一】【设计模式】类关系UML图

1. 继承&#xff08;Generalization&#xff09; 继承是对象间的一种层次关系&#xff0c;允许子类继承并扩展父类的功能。 UML线&#xff1a;带有空心箭头的直线&#xff0c;箭头指向基类&#xff08;父类&#xff09;。 class Parent {public void parentMethod() {System.…

AIOps 智能运维:有没有比专家经验更优雅的错/慢调用分析工具?

作者&#xff1a;图杨 工程师小 A 刚刚接手他们公司最核心的电商系统的运维工作&#xff0c;小 A 发现&#xff0c;在生产环境中&#xff0c;系统明明运行得非常稳定&#xff0c;但是总会出现一些“诡异”的情况。比如&#xff1a; 偶尔会一些错误调用&#xff0c;但是&#…

浅谈如何自我实现一个消息队列服务器(1)——需求分析

文章目录 一、什么是消息队列&#xff1f;二、当下主流的消息队列(MQ)三、自我实现一个消息队列服务器的前期准备——需求分析3.1 核心概念3.2 broker server 核心概念3.2.1、虚拟主机&#xff08;Virtual Host&#xff09;3.2.2、交换机&#xff08;Exchange&#xff09;3.2.2…

shopee店铺降权了怎么办?shopee店铺降权恢复步骤

当您发现自己的Shopee店铺被降权时&#xff0c;这意味着您的产品在搜索结果中的排名下降&#xff0c;从而可能导致流量和销售额的减少。面对这种情况&#xff0c;您需要采取一系列措施来恢复或提升店铺的权重。以下是一些具体的步骤和拓展的原因分析&#xff1a;一&#xff1a;…

3、设计模式之工厂模式2(Factory)

一、什么是工厂模式 工厂模式属于创建型设计模式&#xff0c;它用于解耦对象的创建和使用。通常情况下&#xff0c;我们创建对象时需要使用new操作符&#xff0c;但是使用new操作符创建对象会使代码具有耦合性。工厂模式通过提供一个公共的接口&#xff0c;使得我们可以在不暴露…

【深度学习笔记】7_7 AdaDelta算法

注&#xff1a;本文为《动手学深度学习》开源内容&#xff0c;部分标注了个人理解&#xff0c;仅为个人学习记录&#xff0c;无抄袭搬运意图 7.7 AdaDelta算法 除了RMSProp算法以外&#xff0c;另一个常用优化算法AdaDelta算法也针对AdaGrad算法在迭代后期可能较难找到有用解的…

嵌入式驱动学习第三周——linux内核链表

前言 在 Linux 内核中使用最多的数据结构就是链表了&#xff0c;其中就包含了许多高级思想。 比如面向对象、类似C模板的实现、堆和栈的实现。 嵌入式驱动学习专栏将详细记录博主学习驱动的详细过程&#xff0c;未来预计四个月将高强度更新本专栏&#xff0c;喜欢的可以关注本博…

C#无法给PLC写入数据原因分析

一、背景 1.1 概述 C#中无法给PLC写入数据的原因有很多&#xff0c;这里分享网络端口号被占用导致无法写入的确认方法 1.2 环境 ①使用三菱PLC ②C#通过网口与PLC进行通讯 二、现象 1.1 代码 通过HslCommunication连接PLC时&#xff0c;连接返回成功&#xff0c;写入返回失败 …

snakeflow的springboot项目

Gitee搜索“liuxz/snakerflow”&#xff0c;它是spring boot集成了一款国产工作流引擎snakerflow。 下面是安装步骤&#xff1a; 创建数据库snaker-web&#xff0c;字符集设置成utf8mb4和utf8mb4_generic。不然的话&#xff0c;中文插入不进去。 运行sql命令 CREATE TABLE …