mirror of
https://gitlab.easter-eggs.com/ee/ldapsaisie.git
synced 2024-12-18 22:43:47 +01:00
LSsmoothbox : Correction de bugs dans le resize lors de l'affichage d'une image.
This commit is contained in:
parent
c6837d8da5
commit
efc52cc2e1
1 changed files with 32 additions and 26 deletions
|
@ -73,6 +73,12 @@ var LSsmoothbox = new Class({
|
||||||
asNew: function(options) {
|
asNew: function(options) {
|
||||||
this._options = ($type(options))?option:{};
|
this._options = ($type(options))?option:{};
|
||||||
|
|
||||||
|
if (this.img) {
|
||||||
|
this.img.dispose();
|
||||||
|
this.img.destroy();
|
||||||
|
this.img=undefined;
|
||||||
|
}
|
||||||
|
|
||||||
// Listeners
|
// Listeners
|
||||||
this.listeners = {
|
this.listeners = {
|
||||||
close: new Array(),
|
close: new Array(),
|
||||||
|
@ -88,7 +94,7 @@ var LSsmoothbox = new Class({
|
||||||
|
|
||||||
this.openOptions = {};
|
this.openOptions = {};
|
||||||
|
|
||||||
this.frame.set('html','');
|
this.frame.empty();
|
||||||
},
|
},
|
||||||
|
|
||||||
position: function(){
|
position: function(){
|
||||||
|
@ -150,17 +156,31 @@ var LSsmoothbox = new Class({
|
||||||
},
|
},
|
||||||
|
|
||||||
getEndStyles: function() {
|
getEndStyles: function() {
|
||||||
if (this.openOptions.width) {
|
w = window.getWidth() * 0.9;
|
||||||
|
if (this.openOptions.width && (this.openOptions.width<=w)) {
|
||||||
w = this.openOptions.width;
|
w = this.openOptions.width;
|
||||||
}
|
}
|
||||||
else {
|
|
||||||
w = window.getWidth() * 0.9;
|
h = window.getHeight() * 0.8;
|
||||||
}
|
if (this.openOptions.height && (this.openOptions.height<=h)) {
|
||||||
if (this.openOptions.height) {
|
|
||||||
h = this.openOptions.height;
|
h = this.openOptions.height;
|
||||||
}
|
}
|
||||||
else {
|
|
||||||
h = window.getHeight() * 0.8;
|
if (this.img) {
|
||||||
|
var rH = h.toInt() / this.img.height;
|
||||||
|
var rW = w.toInt() / this.img.width;
|
||||||
|
if (rH > rW) {
|
||||||
|
// W
|
||||||
|
this.img.height = Math.floor(this.img.height*w.toInt()/this.img.width);
|
||||||
|
h = this.img.height;
|
||||||
|
this.img.width = w.toInt();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
// H
|
||||||
|
this.img.width = Math.floor(this.img.width * h.toInt()/this.img.height);
|
||||||
|
w = this.img.width;
|
||||||
|
this.img.height = h.toInt();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var endStyles = {
|
var endStyles = {
|
||||||
|
@ -305,6 +325,8 @@ var LSsmoothbox = new Class({
|
||||||
this.openOptions.width = 120;
|
this.openOptions.width = 120;
|
||||||
this.openOptions.height = 120;
|
this.openOptions.height = 120;
|
||||||
this.resize();
|
this.resize();
|
||||||
|
this.openOptions.width = undefined;
|
||||||
|
this.openOptions.height = undefined;
|
||||||
this.loadingImage.injectInside(this.frame);
|
this.loadingImage.injectInside(this.frame);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -317,28 +339,12 @@ var LSsmoothbox = new Class({
|
||||||
this.openOptions=openOptions;
|
this.openOptions=openOptions;
|
||||||
this.open();
|
this.open();
|
||||||
this.load();
|
this.load();
|
||||||
this.img = new Asset.image(src, {onload: this.resizeToImage.bind(this)});
|
this.img = new Asset.image(src, {onload: this.endLoadImg.bind(this)});
|
||||||
this.img.addEvent('dblclick',this.closeConfirm.bind(this));
|
this.img.addEvent('dblclick',this.closeConfirm.bind(this));
|
||||||
},
|
},
|
||||||
|
|
||||||
resizeToImage: function() {
|
endLoadImg: function() {
|
||||||
if ((this.img.height > this.win.height)||(this.img.width>this.win.width)) {
|
|
||||||
var rH = this.win.height / this.img.height;
|
|
||||||
var rW = this.win.width / this.img.width;
|
|
||||||
if (rH > rW) {
|
|
||||||
// W
|
|
||||||
this.img.height = Math.floor(this.img.height*this.win.width/this.img.width);
|
|
||||||
this.img.width = this.win.width;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
// H
|
|
||||||
this.img.width = Math.floor(this.img.width * this.win.height/this.img.height);
|
|
||||||
this.img.height = this.win.height;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
this.endLoad();
|
this.endLoad();
|
||||||
this.openOptions.width = this.img.width;
|
|
||||||
this.openOptions.height = this.img.height;
|
|
||||||
this.resize();
|
this.resize();
|
||||||
this.img.injectInside(this.frame);
|
this.img.injectInside(this.frame);
|
||||||
},
|
},
|
||||||
|
|
Loading…
Reference in a new issue