Floating Input Label
by Venkatesh Dematti
HTML
<!DOCTYPE html>
<html lang="en" >
<head>
<meta charset="UTF-8">
<title>Float Labels | Webdevtrick.com</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<main>
<h1>Floating Labels From</h1>
<form class="flp">
<div>
<input type="text" id="fname" />
<label for="fname">First Name</label>
</div>
<div>
<input type="text" id="lname" />
<label for="lname">Last Name</label>
</div>
<div>
<input type="text" id="email" />
<label for="email">Email</label>
</div>
</form>
</main>
<script src='https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js'></script>
<script src='https://cdnjs.cloudflare.com/ajax/libs/jquery-easing/1.3/jquery.easing.min.js'></script>
<script src="function.js"></script>
</body>
</html>
CSS
@import url('https://fonts.googleapis.com/css?family=Josefin+Sans&display=swap');
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
padding-top: 100px;
background:#e8eaed;
font-family: 'Josefin Sans', sans-serif;
}
main {
max-width: 500px;
margin: 0 auto;
padding-bottom: 10px;
background: white;
border-radius: 3px;
overflow: hidden;
}
h1 {
font-size: 24px;
font-weight: normal;
background: #ff3a3a;
color: white;
text-align: center;
padding: 20px 0; margin-bottom: 40px;
}
.flp {
padding: 0 50px;
}
.flp div {
position: relative;
margin-bottom: 30px;}
.flp input, .flp label {
width: 400px;
display: block;
font: inherit;
font-size: 16px;
line-height: 24px;
height: 46px;
border: 1px solid #999;
}
.flp input {
padding: 10px;
outline: none;
border-radius: 3px;
}
.flp label {
position: absolute;
left: 0;
top: 0;
padding: 10px 8px;
border-color: transparent;
color: #666;
cursor: text;
}
.ch {
display: block;
float: left;
position: relative;
background: white;
}
.ch:first-child {padding-left: 2px;}
.ch:last-child {padding-right: 2px;}
.focussed {
pointer-events: none;
}
@media (max-width: 765px) {
.flp {
padding: 0 15px;
}
.flp input, .flp label {
width: 100%;
}
}
JavaScript
$(".flp label").each(function(){
var sop = '<span class="ch">';
var scl = '</span>';
$(this).html(sop + $(this).html().split("").join(scl+sop) + scl);
$(".ch:contains(' ')").html(" ");
})
var d;
$(".flp input").focus(function(){
var tm = $(this).outerHeight()/2 *-1 + "px";
$(this).next().addClass("focussed").children().stop(true).each(function(i){
d = i*50;
$(this).delay(d).animate({top: tm}, 200, 'easeOutBack');
})
})
$(".flp input").blur(function(){
if($(this).val() == "")
{
$(this).next().removeClass("focussed").children().stop(true).each(function(i){
d = i*50;
$(this).delay(d).animate({top: 0}, 500, 'easeInOutBack');
})
}
})