Skip to content

Instantly share code, notes, and snippets.

@Mallinanga
Created March 25, 2013 11:08
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Mallinanga/5236417 to your computer and use it in GitHub Desktop.
Save Mallinanga/5236417 to your computer and use it in GitHub Desktop.
#jquery Style file inputs
(function ($) {
$.fn.filestyle = function (options) {
var settings = {
width: 250
};
if (options) {
$.extend(settings, options);
}
return this.each(function () {
var self = this;
var wrapper = $("<div>")
.css({
"width": settings.imagewidth + "px",
"height": settings.imageheight + "px",
"background": "url(" + settings.image + ") 0 0 no-repeat",
"background-position": "right",
"display": "inline",
"position": "absolute",
"overflow": "hidden"
});
var filename = $('<input class="file">')
.addClass($(self).attr("class"))
.css({
"display": "inline",
"width": settings.width + "px"
});
$(self).before(filename);
$(self).wrap(wrapper);
$(self).css({
"position": "relative",
"height": settings.imageheight + "px",
"width": settings.width + "px",
"display": "inline",
"cursor": "pointer",
"opacity": "0.0"
});
if ($.browser.mozilla) {
if (/Win/.test(navigator.platform)) {
$(self).css("margin-left", "-142px");
} else {
$(self).css("margin-left", "-168px");
}
} else {
$(self).css("margin-left", settings.imagewidth - settings.width + "px");
}
$(self).bind("change", function () {
filename.val($(self).val());
});
});
};
})(jQuery);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment