Sha256: 5b8dc62ece00c94db575a25ca3d83fa8cc22353ec06b3e2dfc65cbba34b04818
Contents?: true
Size: 1.55 KB
Versions: 7
Compression:
Stored size: 1.55 KB
Contents
/** * Fx.ProgressBar * * @version 1.1 * * @license MIT License * * @author Harald Kirschner <mail [at] digitarald [dot] de> * @copyright Authors */ Fx.ProgressBar = new Class({ Extends: Fx, options: { text: null, url: null, transition: Fx.Transitions.Circ.easeOut, fit: true, link: 'cancel' }, initialize: function(element, options) { this.element = $(element); this.parent(options); var url = this.options.url; if (url) { this.element.setStyles({ 'background-image': 'url(' + url + ')', 'background-repeat': 'no-repeat' }); } if (this.options.fit) { url = url || this.element.getStyle('background-image').replace(/^url\(["']?|["']?\)$/g, ''); if (url) { var fill = new Image(); fill.onload = function() { this.fill = fill.width; fill = fill.onload = null; this.set(this.now || 0); }.bind(this); fill.src = url; if (!this.fill && fill.width) fill.onload(); } } else { this.set(0); } }, start: function(to, total) { return this.parent(this.now, (arguments.length == 1) ? to.limit(0, 100) : to / total * 100); }, set: function(to) { this.now = to; var css = (this.fill) ? (((this.fill / -2) + (to / 100) * (this.element.width || 1) || 0).round() + 'px') : ((100 - to) + '%'); this.element.setStyle('backgroundPosition', css + ' 0px').title = Math.round(to) + '%'; var text = $(this.options.text); if (text) text.set('text', Math.round(to) + '%'); return this; } });
Version data entries
7 entries across 7 versions & 2 rubygems