add auto variant of loading screen and image element
This commit is contained in:
parent
b63adeeb01
commit
43d5bee70a
3 changed files with 57 additions and 14 deletions
|
@ -2701,6 +2701,19 @@ Miscellaneous
|
||||||
.OxLoadingScreen > div > div {
|
.OxLoadingScreen > div > div {
|
||||||
margin-top: 4px;
|
margin-top: 4px;
|
||||||
}
|
}
|
||||||
|
.OxLoadingScreen.OxAuto {
|
||||||
|
left: 0;
|
||||||
|
top: 0;
|
||||||
|
right: 0;
|
||||||
|
bottom: 0;
|
||||||
|
}
|
||||||
|
.OxLoadingScreen.OxAuto > div {
|
||||||
|
left: 0;
|
||||||
|
top: 0;
|
||||||
|
right: 0;
|
||||||
|
bottom: 0;
|
||||||
|
margin: auto;
|
||||||
|
}
|
||||||
|
|
||||||
.OxSpecialLink {
|
.OxSpecialLink {
|
||||||
padding: 0 2px 0 2px;
|
padding: 0 2px 0 2px;
|
||||||
|
|
|
@ -1,5 +1,9 @@
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
|
/*@
|
||||||
|
Ox.ImageElement <f> Simple image element with loading indication
|
||||||
|
@*/
|
||||||
|
|
||||||
Ox.ImageElement = function(options, self) {
|
Ox.ImageElement = function(options, self) {
|
||||||
|
|
||||||
self = self || {};
|
self = self || {};
|
||||||
|
@ -11,16 +15,29 @@ Ox.ImageElement = function(options, self) {
|
||||||
})
|
})
|
||||||
.options(options || {})
|
.options(options || {})
|
||||||
.update({
|
.update({
|
||||||
height: setSizes,
|
height: function() {
|
||||||
|
!self.isAuto && setSizes();
|
||||||
|
},
|
||||||
src: loadImage,
|
src: loadImage,
|
||||||
width: setSizes
|
width: function() {
|
||||||
|
!self.isAuto && setSizes();
|
||||||
|
}
|
||||||
})
|
})
|
||||||
.addClass('OxImageElement');
|
.addClass('OxImageElement');
|
||||||
|
|
||||||
self.$screen = Ox.LoadingScreen({size: 16}).appendTo(that);
|
self.isAuto = !self.options.width && !self.options.height;
|
||||||
|
|
||||||
|
Ox.print('IMAGE OPTS', self.options, self.isAuto)
|
||||||
|
|
||||||
|
self.$screen = Ox.LoadingScreen({
|
||||||
|
size: 16,
|
||||||
|
width: self.options.width,
|
||||||
|
height: self.options.height
|
||||||
|
})
|
||||||
|
.appendTo(that);
|
||||||
|
|
||||||
loadImage();
|
loadImage();
|
||||||
setSizes();
|
!self.isAuto && setSizes();
|
||||||
|
|
||||||
function loadImage() {
|
function loadImage() {
|
||||||
if (self.$image) {
|
if (self.$image) {
|
||||||
|
|
|
@ -1,25 +1,36 @@
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
|
/*@
|
||||||
|
Ox.LoadingScreen <f> Simple loading screen
|
||||||
|
@*/
|
||||||
|
|
||||||
Ox.LoadingScreen = function(options, self) {
|
Ox.LoadingScreen = function(options, self) {
|
||||||
|
|
||||||
self = self || {};
|
self = self || {};
|
||||||
var that = Ox.Element({}, self)
|
var that = Ox.Element({}, self)
|
||||||
.defaults({
|
.defaults({
|
||||||
height: 256,
|
height: 0,
|
||||||
size: 32,
|
size: 32,
|
||||||
text: '',
|
text: '',
|
||||||
width: 256
|
width: 0
|
||||||
})
|
})
|
||||||
.options(options || {})
|
.options(options || {})
|
||||||
.update({
|
.update({
|
||||||
height: setSizes,
|
height: function() {
|
||||||
|
!self.isAuto && setSizes();
|
||||||
|
},
|
||||||
text: function() {
|
text: function() {
|
||||||
self.$text && self.$text.html(self.options.text);
|
self.$text && self.$text.html(self.options.text);
|
||||||
},
|
},
|
||||||
width: setSizes
|
width: function() {
|
||||||
|
!self.isAuto && setSizes();
|
||||||
|
}
|
||||||
})
|
})
|
||||||
.addClass('OxLoadingScreen');
|
.addClass('OxLoadingScreen');
|
||||||
|
|
||||||
|
self.isAuto = !self.options.width && !self.options.height;
|
||||||
|
self.isAuto && that.addClass('OxAuto')
|
||||||
|
|
||||||
self.$box = $('<div>').appendTo(that);
|
self.$box = $('<div>').appendTo(that);
|
||||||
|
|
||||||
setSizes();
|
setSizes();
|
||||||
|
@ -43,15 +54,17 @@ Ox.LoadingScreen = function(options, self) {
|
||||||
width: (self.options.text ? 256 : self.options.size),
|
width: (self.options.text ? 256 : self.options.size),
|
||||||
height: self.options.size + (self.options.text ? 24 : 0)
|
height: self.options.size + (self.options.text ? 24 : 0)
|
||||||
};
|
};
|
||||||
|
if (!self.isAuto) {
|
||||||
css.left = Math.floor((self.options.width - css.width) / 2);
|
css.left = Math.floor((self.options.width - css.width) / 2);
|
||||||
css.top = Math.floor((self.options.height - css.height) / 2);
|
css.top = Math.floor((self.options.height - css.height) / 2);
|
||||||
css = Ox.map(css, function(value) {
|
|
||||||
return value + 'px';
|
|
||||||
});
|
|
||||||
that.css({
|
that.css({
|
||||||
width: self.options.width + 'px',
|
width: self.options.width + 'px',
|
||||||
height: self.options.height + 'px'
|
height: self.options.height + 'px'
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
css = Ox.map(css, function(value) {
|
||||||
|
return value + 'px';
|
||||||
|
});
|
||||||
self.$box.css(css);
|
self.$box.css(css);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue