This repository was archived by the owner on Oct 23, 2021. It is now read-only.
forked from probots-io/floatlabels.js
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathfloatlabels.min.js
More file actions
1 lines (1 loc) · 2.71 KB
/
floatlabels.min.js
File metadata and controls
1 lines (1 loc) · 2.71 KB
1
(function(e,c,a,g){var d="floatlabel",f={slideInput:true,labelStartTop:"20px",labelEndTop:"10px",paddingOffset:"10px",transitionDuration:0.3,transitionEasing:"ease-in-out",labelClass:"",typeMatches:/text|password|email|number|search|url/};function b(i,h){this.$element=e(i);this.settings=e.extend({},f,h);this.init()}b.prototype={init:function(){var q=this,i=this.settings,p=i.transitionDuration,m=i.transitionEasing,h=this.$element;var j={"-webkit-transition":"all "+p+"s "+m,"-moz-transition":"all "+p+"s "+m,"-o-transition":"all "+p+"s "+m,"-ms-transition":"all "+p+"s "+m,transition:"all "+p+"s "+m};if(h.prop("tagName").toUpperCase()!=="INPUT"){return}if(!i.typeMatches.test(h.attr("type"))){return}var l=h.attr("id");if(!l){l=Math.floor(Math.random()*100)+1;h.attr("id",l)}var n=h.attr("placeholder");var o=h.data("label");var k=h.data("class");if(!k){k=""}if(!n||n===""){n="You forgot to add placeholder attribute!"}if(!o||o===""){o=n}this.inputPaddingTop=parseFloat(h.css("padding-top"))+parseFloat(i.paddingOffset);h.wrap('<div class="floatlabel-wrapper" style="position:relative"></div>');h.before('<label for="'+l+'" class="label-floatlabel '+i.labelClass+" "+k+'">'+o+"</label>");this.$label=h.prev("label");this.$label.css({position:"absolute",top:i.labelStartTop,left:h.css("padding-left"),display:"none","-moz-opacity":"0","-khtml-opacity":"0","-webkit-opacity":"0",opacity:"0"});if(!i.slideInput){h.css({"padding-top":this.inputPaddingTop})}h.on("keyup blur change",function(r){q.checkValue(r)});c.setTimeout(function(){q.$label.css(j);q.$element.css(j)},100);this.checkValue()},checkValue:function(k){if(k){var j=k.keyCode||k.which;if(j===9){return}}var i=this.$element,h=i.data("flout");if(i.val()!==""){i.data("flout","1")}if(i.val()===""){i.data("flout","0")}if(i.data("flout")==="1"&&h!=="1"){this.showLabel()}if(i.data("flout")==="0"&&h!=="0"){this.hideLabel()}},showLabel:function(){var h=this;h.$label.css({display:"block"});c.setTimeout(function(){h.$label.css({top:h.settings.labelEndTop,"-moz-opacity":"1","-khtml-opacity":"1","-webkit-opacity":"1",opacity:"1"});if(h.settings.slideInput){h.$element.css({"padding-top":h.inputPaddingTop})}h.$element.addClass("active-floatlabel")},50)},hideLabel:function(){var h=this;h.$label.css({top:h.settings.labelStartTop,"-moz-opacity":"0","-khtml-opacity":"0","-webkit-opacity":"0",opacity:"0"});if(h.settings.slideInput){h.$element.css({"padding-top":parseFloat(h.inputPaddingTop)-parseFloat(this.settings.paddingOffset)})}h.$element.removeClass("active-floatlabel");c.setTimeout(function(){h.$label.css({display:"none"})},h.settings.transitionDuration*1000)}};e.fn[d]=function(h){return this.each(function(){if(!e.data(this,"plugin_"+d)){e.data(this,"plugin_"+d,new b(this,h))}})}})(jQuery,window,document);