48 lines
1.7 KiB
JavaScript
48 lines
1.7 KiB
JavaScript
(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); |