LOADING...

Preview

Pen ID
Unlock Campus Themeforest adv

 

Code
CSS
/* Just styling form */
.container {
  margin-top: 40px;
}
.form-signin {
  position: relative;
  max-width: 300px;
  padding: 19px 29px 29px;
  margin: 0 auto 20px;
  background-color: #fff;
  border: 1px solid #e5e5e5;
  -webkit-border-radius: 5px;
  -moz-border-radius: 5px;
  border-radius: 5px;
  -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
  -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
}
.form-signin .form-signin-heading,
.form-signin .checkbox {
  margin-bottom: 10px;
}
.form-signin input[type="text"],
.form-signin input[type="password"] {
  font-size: 16px;
  height: auto;
  margin-bottom: 15px;
  padding: 7px 9px;
}
/* Transform translate mixin */
/* Animation frames mixin */
/* Shake animations, we cannot write mixin for theese prefixes due to LESS restrictions */
@-webkit-keyframes shake {
  0% {
    -webkit-transform: translate(0, 0);
    -moz-transform: translate(0, 0);
    -ms-transform: translate(0, 0);
    -o-transform: translate(0, 0);
    transform: translate(0, 0);
  }
  25% {
    -webkit-transform: translate(-20px, 0);
    -moz-transform: translate(-20px, 0);
    -ms-transform: translate(-20px, 0);
    -o-transform: translate(-20px, 0);
    transform: translate(-20px, 0);
  }
  50% {
    -webkit-transform: translate(10px, 0);
    -moz-transform: translate(10px, 0);
    -ms-transform: translate(10px, 0);
    -o-transform: translate(10px, 0);
    transform: translate(10px, 0);
  }
  75% {
    -webkit-transform: translate(-20px, 0);
    -moz-transform: translate(-20px, 0);
    -ms-transform: translate(-20px, 0);
    -o-transform: translate(-20px, 0);
    transform: translate(-20px, 0);
  }
  100% {
    -webkit-transform: translate(0, 0);
    -moz-transform: translate(0, 0);
    -ms-transform: translate(0, 0);
    -o-transform: translate(0, 0);
    transform: translate(0, 0);
  }
}
@-moz-keyframes shake {
  0% {
    -webkit-transform: translate(0, 0);
    -moz-transform: translate(0, 0);
    -ms-transform: translate(0, 0);
    -o-transform: translate(0, 0);
    transform: translate(0, 0);
  }
  25% {
    -webkit-transform: translate(-20px, 0);
    -moz-transform: translate(-20px, 0);
    -ms-transform: translate(-20px, 0);
    -o-transform: translate(-20px, 0);
    transform: translate(-20px, 0);
  }
  50% {
    -webkit-transform: translate(10px, 0);
    -moz-transform: translate(10px, 0);
    -ms-transform: translate(10px, 0);
    -o-transform: translate(10px, 0);
    transform: translate(10px, 0);
  }
  75% {
    -webkit-transform: translate(-20px, 0);
    -moz-transform: translate(-20px, 0);
    -ms-transform: translate(-20px, 0);
    -o-transform: translate(-20px, 0);
    transform: translate(-20px, 0);
  }
  100% {
    -webkit-transform: translate(0, 0);
    -moz-transform: translate(0, 0);
    -ms-transform: translate(0, 0);
    -o-transform: translate(0, 0);
    transform: translate(0, 0);
  }
}
@-ms-keyframes shake {
  0% {
    -webkit-transform: translate(0, 0);
    -moz-transform: translate(0, 0);
    -ms-transform: translate(0, 0);
    -o-transform: translate(0, 0);
    transform: translate(0, 0);
  }
  25% {
    -webkit-transform: translate(-20px, 0);
    -moz-transform: translate(-20px, 0);
    -ms-transform: translate(-20px, 0);
    -o-transform: translate(-20px, 0);
    transform: translate(-20px, 0);
  }
  50% {
    -webkit-transform: translate(10px, 0);
    -moz-transform: translate(10px, 0);
    -ms-transform: translate(10px, 0);
    -o-transform: translate(10px, 0);
    transform: translate(10px, 0);
  }
  75% {
    -webkit-transform: translate(-20px, 0);
    -moz-transform: translate(-20px, 0);
    -ms-transform: translate(-20px, 0);
    -o-transform: translate(-20px, 0);
    transform: translate(-20px, 0);
  }
  100% {
    -webkit-transform: translate(0, 0);
    -moz-transform: translate(0, 0);
    -ms-transform: translate(0, 0);
    -o-transform: translate(0, 0);
    transform: translate(0, 0);
  }
}
@-o-keyframes shake {
  0% {
    -webkit-transform: translate(0, 0);
    -moz-transform: translate(0, 0);
    -ms-transform: translate(0, 0);
    -o-transform: translate(0, 0);
    transform: translate(0, 0);
  }
  25% {
    -webkit-transform: translate(-20px, 0);
    -moz-transform: translate(-20px, 0);
    -ms-transform: translate(-20px, 0);
    -o-transform: translate(-20px, 0);
    transform: translate(-20px, 0);
  }
  50% {
    -webkit-transform: translate(10px, 0);
    -moz-transform: translate(10px, 0);
    -ms-transform: translate(10px, 0);
    -o-transform: translate(10px, 0);
    transform: translate(10px, 0);
  }
  75% {
    -webkit-transform: translate(-20px, 0);
    -moz-transform: translate(-20px, 0);
    -ms-transform: translate(-20px, 0);
    -o-transform: translate(-20px, 0);
    transform: translate(-20px, 0);
  }
  100% {
    -webkit-transform: translate(0, 0);
    -moz-transform: translate(0, 0);
    -ms-transform: translate(0, 0);
    -o-transform: translate(0, 0);
    transform: translate(0, 0);
  }
}
@keyframes shake {
  0% {
    -webkit-transform: translate(0, 0);
    -moz-transform: translate(0, 0);
    -ms-transform: translate(0, 0);
    -o-transform: translate(0, 0);
    transform: translate(0, 0);
  }
  25% {
    -webkit-transform: translate(-20px, 0);
    -moz-transform: translate(-20px, 0);
    -ms-transform: translate(-20px, 0);
    -o-transform: translate(-20px, 0);
    transform: translate(-20px, 0);
  }
  50% {
    -webkit-transform: translate(10px, 0);
    -moz-transform: translate(10px, 0);
    -ms-transform: translate(10px, 0);
    -o-transform: translate(10px, 0);
    transform: translate(10px, 0);
  }
  75% {
    -webkit-transform: translate(-20px, 0);
    -moz-transform: translate(-20px, 0);
    -ms-transform: translate(-20px, 0);
    -o-transform: translate(-20px, 0);
    transform: translate(-20px, 0);
  }
  100% {
    -webkit-transform: translate(0, 0);
    -moz-transform: translate(0, 0);
    -ms-transform: translate(0, 0);
    -o-transform: translate(0, 0);
    transform: translate(0, 0);
  }
}
/* Animation mixin */
/* Mixing shake animation with shake class */
.form-signin.shake {
  -webkit-animation: shake 0.3s;
  -moz-animation: shake 0.3s;
  -ms-animation: shake 0.3s;
  -o-animation: shake 0.3s;
  animation: shake 0.3s;
}
JS
var form = $(".form-signin");

// Function to wipe animation class, after animation is finished
function onAnimationEnd(){
  form.removeClass("shake");
}

// Just listen to the all possible animation events
// oanimationend - Opera
// MSAnimationEnd - IE 10
// webkitAnimationEnd - Chrome, Safari
// animationend - Firefox, W3C standart
form.on("oanimationend MSAnimationEnd webkitAnimationEnd animationend", onAnimationEnd);

// On form submit - adding shake class
form.submit(function(){
  form.addClass("shake");
  return false;
});
Host Instantly Drag and Drop Website Builder

 

Description

Example of MacOS style, login form error handling
Term
Wed, 11/29/2017 - 11:24

Related Codes

Pen ID
Pen ID
Pen ID