JavaScript的onfocus与onblur用法

在做登录的时候,登录界面的文本框中会有一段文字,当鼠标点击文本框时,框内文字消失,当鼠标离开时,那行字又出现了,但当输入文本时那行字便不再显现,此特效是如何实现的呢?实现原理如下

首先,先看一下效果图

点击前


点击后


关键代码如下

<input type="text" name="username"  value="请输入用户名" onfocus="this.value = '';" onblur="if (this.value == '') {this.value = '请输入用户名';}"/>

这段代码中,有两个非常重要的方法:onfocus和onblur

官方释义

onfocus:事件在对象获得焦点时发生。

即当鼠标点击时,触发的事件,

onblur: 事件会在对象失去焦点时发生

即当鼠标点击另一处时所触发的事件

至此这个程序的大体流程清晰了:当鼠标点击文本框时,文本框获得焦点,触发onfocus,文本框中的值变为空,鼠标点击另外一处时,即文本框失去焦点,触发onblur事件,进行判断文本框的内容,若value="",则给value赋值请输入用户名。

具体代码如下

style.css

.clear{clear:both;}
.pos-relative{position:relative;}
img{max-width:100%;}
body{
  font-family: 'Montserrat', sans-serif;
   font-size: 100%;
   background: url(../images/bbb.jpg)no-repeat;
       background-size: cover;
}
.login-form{
	
	padding:100px 0px 50px 0px;

}
.login-form h1{
	font-size:2em;
	color:#fff;
	font-weight:800;
	text-transform:uppercase;
	text-align:center;
	margin-bottom:2em;
/*-- w3layouts --*/
}
.top-login {
    width: 130px;
    height: 130px;
    display: block;
    -webkit-transform: rotate(45deg) translate3d(0, 0, 0);
    -moz-transform: rotate(45deg) translate3d(0, 0, 0);
    -ms-transform: rotate(45deg) translate3d(0, 0, 0);
    -o-transform: rotate(45deg) translate3d(0, 0, 0);
    transform: rotate(45deg) translate3d(0, 0, 0);
    margin: 0 auto 4em;
    background: #fff;
    position: relative;
}
.top-login span{
    border: 2px solid #F36;
    width: 105px;
    height: 105px;
    display: block;
    margin: 0px auto;
    position: absolute;
    top: 11px;
    left: 11px;
}
.top-login span img{
       -webkit-transform: rotate(-45deg) translate3d(0, 0, 0);
    -moz-transform: rotate(-45deg) translate3d(0, 0, 0);
    -ms-transform: rotate(-45deg) translate3d(0, 0, 0);
    -o-transform: rotate(-45deg) translate3d(0, 0, 0);
    transform: rotate(-45deg) translate3d(0, 0, 0);
    margin: 20px 0 0 20px;
}

.login-top{
	width: 460px;
	display: block;
	margin: 0 auto;
}
.login-ic {
    background: rgba(255, 255, 255, 0.32); 
	margin-bottom:1.5em;
    padding: 8px;	
}
.login-ic i {
        background: url(../images/m.png)no-repeat 6px 6px;
    width: 38px;
    height: 38px;
    float: left;

    display: inline-block;
}
.login-ic i.icon {
    background: url(../images/l.png)no-repeat 6px 6px;  
}
.login-ic input[type="text"],.login-ic  input[type="password"] {
	    float: left;
    background: none;
    outline: none;
    font-size: 15px;
    font-weight: 400;
    color: #fff;
    padding: 10px 16px;
    border: none;
    border-left: 1px solid #fff;
    width: 82%;
    display: inline-block;
    margin-left: 7px;
}
.log-bwn {
	text-align: center;
}
.log-bwn input[type="submit"] {
    font-size: 15px;
    font-weight: 700;
    color: #fff ;
    padding: 13px 0;
    background: #ff3366;
    display: inline-block;
    width: 100%;
	outline:none;
	border:2px solid #ff3366;
	cursor:pointer;
	text-transform:uppercase;
}
.log-bwn input[type="submit"]:hover{
	transition: all 0.3s ease;
     -webkit-transition: all 0.3s ease;
     -moz-transition: all 0.3s ease;
     -o-transition: all 0.3s ease;
	 border:2px solid #fff;
}

.top-login {
    width: 90px;
    height:90px;
    margin: 0 auto 3em;
}
.top-login span img {
    margin: 5px 0 0 5px;
}
.top-login span {
    width: 75px;
    height: 75px;
    top: 5px;
    left: 5px;
}
.login-form h1 {
    margin-bottom: 1em;
    font-size: 1.7em;
}
p.copy {

    margin-top: 3em;
}
.login-form {
    padding: 80px 0px 45px 0px;
}
.login-ic {
    margin-bottom: 1em;
    padding: 3px;
}
.log-bwn input[type="submit"] {
    padding: 10px 0;
}
p.copy {
    font-size: 0.8em;
}
body {
    min-height: 672px;
}
}
@media (max-width:384px){
.login-top {
    width: 340px;
}
.login-ic input[type="text"], .login-ic input[type="password"] {
    width: 75%;
}
body {
    min-height: 600px;
}
}
@media(max-width:320px){
.login-top {
    width: 280px;
}
.login-ic input[type="text"], .login-ic input[type="password"] {
    width: 70%;
}
.login-form {
    padding: 50px 0px 45px 0px;
}
body {
    min-height: 540px;
}
}

index.html

<!DOCTYPE HTML>
<html>
<head>
<title>简单js代码</title>

<link href="css/style.css" rel="stylesheet" type="text/css" media="all"/>
</head>
<body>
<div class="login-form">
		
			<h1>登录</h1>
			<div class="login-top">
			<form>
				<div class="login-ic">
					<i ></i>
					<input type="text" name="username"  value="请输入用户名" onfocus="this.value = '';" onblur="if (this.value == '') {this.value = '请输入用户名';}"/>
					<div class="clear"> </div>
				</div>
				<div class="login-ic">
					<i class="icon"></i>
					<input type="password"  value="Password" onfocus="this.value = '';" onblur="if (this.value == '') {this.value = 'password';}"/>
					<div class="clear"> </div>
				</div>
			
				<div class="log-bwn">
					<input type="submit"  value="登录" >
				</div>
				</form>
			</div>
		</div>		
</body>
</html>
图片素材可直接到我的csdn下载页面,https://download.csdn.net/download/qq_34038368/10458846



猜你喜欢

转载自blog.csdn.net/qq_34038368/article/details/80568841
今日推荐