Fdog系列(一):思来想去,不如写一个聊天软件,那就从仿QQ注册页面开始吧。

文章目录

  • 一.前言
    • 1. 基础布局
    • 2. 自动切换图片
    • 3. 添加内容
    • 4. 自动缩放,控件的显示和隐藏
    • 5.响应用户输入操作


在这里插入图片描述


所有文章源码已整体打包上传至github,求星星!

一.前言

两年的大学生活马上就要结束了,马上面临实习,突然心血来潮,想着最后再来写一个项目来总结这几年所学的东西,难的项目,咱也不会,索性就模仿qq来写一个fdog,嘿嘿,思来想去,索性先从前端开始,虽说大多数编程人接触的第一门语言基本都是C语言,但千万不要单纯的以为只靠一门C语言就能做出像样的程序出来,所以学C语言能干什么,什么都干不了,仅仅作为一个基础而已(这里已经被人喷了,我解释一下,我说C什么都干不了的前提下是完成一套流程,你说就用C搞嵌入式,搞单片机,我没意见,我说这句话的前提是你要搞一整套,包括pc端开发,移动端开发,网页开发,以及部署服务器,连接数据库等等,甚至是我文中出现的使用ps做出来的背景图,图标图等等,如果这些内容你全部能用c做出来,你再质疑我。)。在这之前,我无法将所学知识融合贯通,包括我自己私下学习,或者上课学习,我相信也有很多人跟我有一样的烦恼,不知道乱七八糟的学起来有什么用,只学一门语言不好吗,我也无法理解老师所讲的一些内容,但在此之后,我觉得应该是没有get到那个点,接下来,随着系列的连续更新,我将力图帮助新入门的朋友们,了解如何将各种语言,各种技术整合到一块,如果你心动了,希望可以给我一个三连!(文末有福利

如果需要素材和完整代码,评论区留下你的邮箱!

那么接下来,也是该篇的任务,我们来看如何用html写一个注册页面并使用js加载用户输入响应,在第二篇,将带领大家学习如何将html变成jsp,并使用java写其对应的后台响应。

先上图,没图都是耍流氓,附上本次案例链接Fdog注册案例 。
在这里插入图片描述

通过学习,你将获得:

  1. 基础布局
  2. 自动切换图片
  3. 控件根据网页大小自动缩放
  4. 控件的显示和隐藏
  5. 响应用户输入操作

1. 基础布局

首先分析布局,图中的布局分为左右两大板块,右边的板块又包括三大板块:
在这里插入图片描述
我们先来一个水平布局,并设置左边的宽为25%,右边的宽为75%
在这里插入图片描述

<div class="fdogback"></div>
<div class="fdogtext"></div>
.fdogback {background-color: aqua;float: left;width: 25%;
}.fdogtext {background-color: red;float: left;width: 75%;
}

再在右边的板块添加三个盒子
在这里插入图片描述

<div class="fdogtext">
<div class="fdogtext_1"></div>
<div class="fdogtext_2"></div>
<div class="fdogtext_3"></div>
</div>

和上面布局的css类似,切记一定要使用百分比的方式来布局。


2. 自动切换图片

现在基本布局已经搞好,我们写来自动切换左边的图片,首先得有图片,这是我准备好的四张尺寸一样的图片。
在这里插入图片描述
在左边的盒子,添加一个img标签,给他添加一个id。

<div class="fdogback"><img src="img/background02.png" id="backimg" style="height: 100%;" />
</div>

创建一个js文件,设置每5秒改变一次id为backimg中src的值

window.onload = init;
var n = 1; //图片标记数
var dingshi; //让图片动的定时器
function init() {dingshi = window.setInterval("tupian()", 5000);
}
//更换图片
function tupian() {var obj = document.getElementById("backimg");n++;if (n >= 5) {n = 1;}obj.src = "img/background0" + n + ".png";
}

在html应用js

<script src="js/backv.js"></script>

当值为1000时效果入下
在这里插入图片描述


3. 添加内容

第一个盒子里面添加一个ul,

<div class="fdogtext_1"><ul id = "mul"><li style="float: right; list-style: none; margin-right: 30px;"><a href="#" style="text-decoration: none; color: gray;">意见反馈</a></li><li style="float: right; list-style: none; margin-right: 30px;"><a href="http://127.0.0.1:8848/newfdog/download.html" style="text-decoration: none; color: gray;">下载Fdog</a></li><li style="float: right; list-style: none; margin-right: 30px;"><a href="http://127.0.0.1:8848/newfdog/index.html" style="text-decoration: none; color: gray;">首页</a></li></ul>
</div>

第二个盒子添加表单

<div class="fdogtext_2"><div id ="mh1"><span style="font-size: 48px;">欢迎注册Fdog</span></div><div id ="mh2"><span style="font-size: 30px;">每一天,乐在沟通。</span></div><form action="FdogMaven" name="form" method="post"><div style="height: 30px; "></div><input tyle="text" id="userName" name="username" placeholder="昵称" onBlur="checkUserName()" oninput="checkUserName()" value='<%=request.getParameter("username")==null?"":request.getParameter("username")%>'/><div id="um"><span class="default" id="nameErr" style="color: white;"></span></div><input type="password" id="userPasword" name="password" placeholder="密码" onBlur="checkPassword()" oninput="checkPassword()" value='<%=request.getParameter("password")==null?"":request.getParameter("password")%>'/><div id="pw"><span class="default" id="passwordErr" style="color: white;"></span></div><span><select name="comboxphone" id="comboxphone"><option>中国+86</option><option>中国香港特别行政区+852</option><option>中国澳门特别行政区+853</option><option>中国台湾地区+886</option></select><input type="text" id="userPhone" name="phone" placeholder="手机号" onBlur="checkPhone()" oninput="checkPhone()" value='<%=request.getParameter("phone")==null?"":request.getParameter("phone")%>'/></span><div style="height: 50px; width: 490px;  margin: 0 auto; text-align: left; color: gray;"><span>可通过该手机号找回密码&nbsp;</span><span class="default" id="phoneErr" style="color: white;"></span></div><div id="codediv" style=" height: 100px; width:100%;"><input tyle="text" id="code" name="verificationcode" placeholder="验证码" /><input type="button" id="codebutton" value="获取短信验证码" onclick="codeclick(this)"/><div style="height: 50px; width: 490px;  margin: 0 auto; text-align: left; color: gray;"><span class="default" id="codeErr" style="color: white;"></span></div></div><input type="submit" id="up" class="register" value="立即注册" onclick="this.form.submit();"/><div style="height: 30px;width: 490px;  margin: 0 auto; text-align: left; color: gray;"><p><input type="checkbox" checked="checked" />我已阅读并同意相关服务条款和隐私政策 <img id="imgupdown" style="height: 16px;" src="img/up.png" onclick="lableclick()"/> </p></div><div id ="clause" style=" height: 100px; width: 480px; text-align: left; margin:  0 auto; display: none;"><a href="#"style="text-decoration: none; color: cornflowerblue;" >《Fdog号码规则》</a><br><a href="#"style="text-decoration: none; color: cornflowerblue;" >《隐私协议》</a><br><a href="#" style="text-decoration: none; color: cornflowerblue;">《Fdog注册使用协议》</a>
</div></form>
</div>

第三个盒子添加版权信息

<div class="fdogtext_3">Copyright © 2021.花狗Fdog All rights reserved.<br class="brcopy"><a href="https://beian.miit.gov.cn/" style="text-decoration: none; color: black; color: gray;">蒙ICP备2021000567号</a>
</div>

最终效果,颜色是为了区分不同的盒子
在这里插入图片描述


4. 自动缩放,控件的显示和隐藏

细心的你可能看到了开头动态图,当页面缩放到一定程度,左侧的图片将不再显示,如何做到呢?

就是这个东西,当宽度小于1100px时,将隐藏左边的板块,图片也因此隐藏。

@media (max-width:1100px) {.fdogback {display: none;}
}

如果页面一直缩小,直到手机大小呢?,我们可以使用缩放功能,将页面进行缩放。

@media (max-width:600px) {
body{transform: scale(0.53333);
}

效果如图
在这里插入图片描述


5.响应用户输入操作

在这里插入图片描述
如何根据用户输入的内容给出响应的提示,这里也是使用js进行判断的。

例如我们的昵称响应,当鼠标向输入框输入内容时,触发js中的checkUserName函数。

//验证用户名   
function checkUserName() {var username = document.getElementById('userName');var errname = document.getElementById('nameErr');//var pattern = /^\w{3,}$/; //用户名格式正则表达式:用户名要至少三位 if (username.value.length == 0) {errname.innerHTML = "用户名不能为空"username.style.borderColor = 'red'errname.style.color = 'red'return false;}if (username.value.length <= 1) {errname.innerHTML = "用户名不合规范,至少三位"username.style.borderColor = 'red'errname.style.color = 'red'return false;} else {errname.innerHTML = "该昵称可用"username.style.borderColor = 'lime'errname.style.color = 'green'return true;}
}

又或者是倒计时

//验证发送短信验证码
var clock = '';
var nums = 60;
var btn;
function codeclick(thisBtn) {var codeErr = document.getElementById('codeErr');codeErr.innerHTML = "短信已发送,请注意查收";codeErr.style.color = 'green'var name = checkUserName();var password = checkPassword();var phone = checkPhone();if (name && password && phone) {btn.disabled = true; //按钮不可点击btn.value = nums+'秒后可重新获取';clock = setInterval(doLoop,1000); //一秒执行一次}
}
function doLoop()
{nums--;if(nums>0){btn.value = nums+'秒后可重新获取';}else{clearInterval(clock);//清除js定时器btn.disabled = false;btn.value = '获取短信验证码';nums =10;}
}

之前,经常逛博客,发现有人博客页面有一个动漫人物,并且视角还会跟着鼠标来动,我帮你们找到了!看图
在这里插入图片描述
这个是图中的那个动漫人物,还可以替换代码中的jsonPath。

<script>L2Dwidget.init({ "model": { "jsonPath":"https://unpkg.com/live2d-widget-model-shizuku@1.0.5/assets/shizuku.model.json", "scale": 1, "hHeadPos":0.5, "vHeadPos":0.618 },"display": { "position": "right", "width": 100, "height": 200, "hOffset": 420, "vOffset": 120 }, "mobile": { "show": true, "scale": 0.5 },"react": { "opacityDefault": 0.7, "opacityOnHover": 0.2 } });
</script>
<!--
其他可选的模型: 小帅哥: https://unpkg.com/live2d-widget-model-chitose@1.0.5/assets/chitose.model.json萌娘:https://unpkg.com/live2d-widget-model-shizuku@1.0.5/assets/shizuku.model.json 小可爱(女):https://unpkg.com/live2d-widget-model-koharu@1.0.5/assets/koharu.model.json 小可爱(男):https://unpkg.com/live2d-widget-model-haruto@1.0.5/assets/haruto.model.json初音:https://unpkg.com/live2d-widget-model-miku@1.0.5/assets/miku.model.json 
-->

这个是背景后面悬浮的线条。

<script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
<script>$(function(){function n(n,e,t){return n.getAttribute(e)||t}function e(n){return document.getElementsByTagName(n)}function t(){var t=e("script"),o=t.length,i=t[o-1];return{l:o,z:n(i,"zIndex",-1),o:n(i,"opacity",.8),c:n(i,"color","0,0,0"),n:n(i,"count",150)}}function o(){a=m.width=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth,c=m.height=window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight}function i(){r.clearRect(0,0,a,c);var n,e,t,o,m,l;s.forEach(function(i,x){for(i.x+=i.xa,i.y+=i.ya,i.xa*=i.x>a||i.x<0?-1:1,i.ya*=i.y>c||i.y<0?-1:1,r.fillRect(i.x-.5,i.y-.5,1,1),e=x+1;e<u.length;e++)n=u[e],null!==n.x&&null!==n.y&&(o=i.x-n.x,m=i.y-n.y,l=o*o+m*m,l<n.max&&(n===y&&l>=n.max/2&&(i.x-=.03*o,i.y-=.03*m),t=(n.max-l)/n.max,r.beginPath(),r.lineWidth=t/2,r.strokeStyle="rgba("+d.c+","+(t+.2)+")",r.moveTo(i.x,i.y),r.lineTo(n.x,n.y),r.stroke()))}),x(i)}var a,c,u,m=document.createElement("canvas"),d=t(),l="c_n"+d.l,r=m.getContext("2d"),x=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(n){window.setTimeout(n,1e3/45)},w=Math.random,y={x:null,y:null,max:2e4};m.id=l,m.style.cssText="position:fixed;top:0;left:0;z-index:"+d.z+";opacity:"+d.o,e("body")[0].appendChild(m),o(),window.onresize=o,window.onmousemove=function(n){n=n||window.event,y.x=n.clientX,y.y=n.clientY},window.onmouseout=function(){y.x=null,y.y=null};for(var s=[],f=0;d.n>f;f++){var h=w()*a,g=w()*c,v=2*w()-1,p=2*w()-1;s.push({x:h,y:g,xa:v,ya:p,max:6e3})}u=s.concat([y]),setTimeout(function(){i()},100)});
</script>

这一篇就写到这里,觉得还不错的话,给个关注吧!重要的话再说一次,如果需要素材和完整代码,评论区留下你的邮箱吧!

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

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

相关文章

基于Python的网络拓扑图绘制

最近写论文画了许多图&#xff0c;在这里记录一些。当然&#xff0c;如果仅仅是展示性图片的话也可以使用visio&#xff0c;但是这里我仍然想探究一下如何使用pyhon画出美观的网络拓扑图。 一、画出网络拓扑图 给出邻接矩阵&#xff0c;画出网络的拓扑图&#xff1a; import…

认识网络、几种常用的网络拓扑图

交换协议&#xff1a; VLAN技术&#xff1a;虚拟局域网 STP技术&#xff1a;生成树协议 VRRP技术&#xff1a;虚拟路由冗余协议 VPN&#xff1a;虚拟专用网络 名词解释 路由协议&#xff1a;http、HTTPS、tcp、ip 静态路由配置 OSPF协议 RIP协议 ACL访问控制 什么是网络&…

快速读懂网络拓扑图

快速读懂网络拓扑图 几重常见的网络拓扑总线型拓扑简介优点缺点 环型拓扑简介优点缺点 星型拓扑简介优点缺点 网络层级机构节点结点链路通路 不同的连接线代表什么意思&#xff1f;不同颜色、粗细的直线代表什么意思&#xff1f;闪电线-串行链路 几重常见的网络拓扑 总线型拓扑…

盘点5款常用的网络拓扑图制作工具

网络拓扑能直观明了的展示网络中各网元之间的关系&#xff0c;极大方便运维人员对网络进行优化配置、故障排查等操作。那么这个专业性比较强的拓扑图&#xff0c;要用什么工具把它轻松&#xff0c;简便的画出来呢&#xff1f;现对市场5款主流的拓扑制作软件进行介绍&#xff1a…

网络拓扑图怎么画 详细教程

大数据时代&#xff0c;如何更好地去运营、呈现数据&#xff0c;并从其中发掘出更多信息成为了人们探索的方向。网络拓扑图就是一种非常有用的信息化图表&#xff0c;这种网状关系呈现出来的利器可以使我们把想要传递的信息更加清晰、有逻辑的呈现在别人的眼前。 1. 什么是网络…

网络拓扑图

转载自&#xff1a;https://blog.csdn.net/weixin_40792878/article/details/82555594 什么是拓扑结构?   首先我们来解释一下拓扑的含义&#xff0c;所谓“拓扑”就是把实体抽象成与其大小、形状无关的“点”&#xff0c;而把连接实体的线路抽象成“线”&#xff0c;进而…

【新手】网络拓扑图要这样画

网络拓扑设计分为单核心和双核心两种 1. 单核心网络拓扑设计&#xff08;如图&#xff09; &#xff08;上图写的是路由器连接外网&#xff0c;也可以连接公司别的分支机构&#xff0c;比如现在是上海分公司&#xff0c;也可以用路由器和北京分公司相连&#xff0c;当然要借助…

关于网络拓扑图,你想知道的都在这

这篇文章&#xff0c;我将集中回答以下这四个问题&#xff1a; 网络拓扑图的定义网络拓扑图的分类网络拓扑图的设计规范网络拓扑图的绘制步骤 一、网络拓扑图的定义 在认识网络拓扑图前&#xff0c;我们先来了解下网络拓扑结构。 所谓网络拓扑结构&#xff0c;是指用传输媒…

作为程序员, 我如何使用ChatGPT来帮我写代码

从快速学习到调试程序&#xff0c; 甚至将繁琐的工作自动化。 我们每个人都渴望成功&#xff0c; 而获得成功的最有效的方式之一就是&#xff0c; 在尽可能短的时间内&#xff0c; 解决尽可能多的人的问题&#xff0c; 特别是大家都有的问题。 我们可以观察身边优秀的产品&…

只知道ChatGPT?这些AI工具同样值得收藏

B站|公众号&#xff1a;啥都会一点的研究生 人工智能革命带来了许多能够提高生产力和转变工作方式的工具&#xff0c;本期将重点介绍音频、视频、设计以及图像和数据清理中的顶级 AI 工具。 音视频类AI工具&#xff1a; VoicePen AI https://voicepen.ai&#xff1a;该工具可…

行情数据接口-美股版

一、美股历史数据API 1.数据列表 待完善补充 下载美股公司列表&#xff0c;分别是纳斯达克&#xff0c;纽交所&#xff0c;美国证券交易所&#xff0c;三个CSV文件 下载地址&#xff0c;纳斯达克官网&#xff1a;Company List: NASDAQ, NYSE, & AMEX Companies http:/…

彩票系统

**用c#简单实现彩票系统**首先它能实现哪些功能&#xff1a; 1.红球号码不能超过1~33&#xff0c;彩票号码不能重复&#xff1b; 2.随机产生一注彩票&#xff1b; 3.设奖及中奖 奖级表&#xff1a; 奖级 中奖说明 单注奖金 &#xff08;前面数字代表红球数量、后面数字代表篮…

大乐透机选号码生产器

1、蓝色球5个&#xff0c;1~35 不能重复 2、红色球2个&#xff0c;1~12 不能重复 代码如下&#xff1a; public class demo {public static void main(String[] args) {System.out.println("现在时间为" LocalDateTime.now()"&#xff0c;今天体彩大乐透的开…

如何理解单目视觉slam中尺寸漂移问题

最近学习了ORB_SLAM2中计算sim3变换&#xff0c;其中对什么是尺寸因子和尺寸漂移问题还存在一些知识盲区&#xff0c;因此查看了一些别人写的文章以及自己的理解整理了一下这个问题。&#xff08;感觉自己的理解还不是非常的准确&#xff0c;如果有朋友发现我理解不对的地方&am…

微软推出 Hierarchical Transformer 实现更高准确率的语音评测

对于语言学习者来说&#xff0c;练习发音并获得及时准确的反馈&#xff0c;是提高口语水平的重要环节。多年来&#xff0c;微软一直深耕基于 Azure 认知服务的语音功能&#xff0c;不断优化语音评测[1]功能的底层技术&#xff0c;从准确率、流畅度、完整性和语音语调等方面&…

工作汇报PPT模板推荐

工作中我们难免少不了写各种各样的总结汇报&#xff0c;也会用到PPT。怎么写好一个让老板满意的工作汇报PPT呢&#xff1f;今天就给大家推荐PPT家园的工作汇报ppt模板。 隆重大气几何微立体风背景商务工作汇报PPT模板 简洁微立体风格&#xff0c;非常适合商务工作者的汇报ppt…

红色商务风季度工作总结汇报PPT模板

这是一套商务风季度工作总结汇报PPT模板.pptx共23张, 幻灯片模板使用了红色作为主色系,设置了丰富的动画效果,主要适用于通用行业,目录主要包括&#xff1a;上季度工作概述,工作完成情况,存在主要问题,下季度工作计划。 下载地址&#xff1a;商务风季度工作总结汇报PPT模板-行…

如何写好一份晋升PPT(附PPT模板)

又到了每年晋升述职的时间&#xff0c;在过去的 5、6 年里&#xff0c;我以评委身份参与了大量的晋升述职&#xff08;主要是前端&#xff0c;也包括客户端和测试&#xff09;&#xff0c;也辅导了许多&#xff08;100&#xff09;组内外的同学&#xff0c;指导他们书写和完善 …

分享58个述职报告PPT模板,总有一款适合你

分享58个述职报告PPT模板&#xff0c;总有一款适合你 下面是文件的名字&#xff0c;我放了一些图片&#xff0c;文章里不是所有的图主要是放不下...&#xff0c;大家下载后可以看到。 链接&#xff1a;https://pan.baidu.com/s/1aGvoYXC4gEbKazjVRMQm3Q 提取码&#xff1a;r…

工作总结PPT怎么写?60套工作总结PPT模板:年度汇报、项目汇报,晋升述职

不要再做无用功了小伙伴们&#xff01;在职场里&#xff0c;不管是经理还是老板&#xff0c;没事总想让我们做PPT汇报工作。月汇报、年度汇报、日常汇报、项目汇报&#xff0c;还有晋升述职、工作经验总结…总之就是数不胜数&#xff1b;俗话说得好&#xff1a;躲得了初一&…