If no bottom element is specified, take the last child of content in scaleToFit
This commit is contained in:
parent
474f65cff3
commit
b8f6172110
|
@ -584,10 +584,21 @@ function scaleToFit(baseWidth, baseHeight, scaleEl, bottomEl) {
|
||||||
$j(window).on('resize', endOfResize); //set delayed scaling when Scale to Fit is selected
|
$j(window).on('resize', endOfResize); //set delayed scaling when Scale to Fit is selected
|
||||||
var ratio = baseWidth / baseHeight;
|
var ratio = baseWidth / baseHeight;
|
||||||
var container = $j('#content');
|
var container = $j('#content');
|
||||||
|
if (!container) {
|
||||||
|
console.error("No container found");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!bottomEl || !bottomEl.length) {
|
||||||
|
bottomEl = $j(container[0].lastElementChild);
|
||||||
|
}
|
||||||
|
//console.log(bottomEl);
|
||||||
var viewPort = $j(window);
|
var viewPort = $j(window);
|
||||||
// jquery does not provide a bottom offet, and offset dows not include margins. outerHeight true minus false gives total vertical margins.
|
// jquery does not provide a bottom offset, and offset does not include margins. outerHeight true minus false gives total vertical margins.
|
||||||
var bottomLoc = bottomEl.offset().top + (bottomEl.outerHeight(true) - bottomEl.outerHeight()) + bottomEl.outerHeight(true);
|
var bottomLoc = bottomEl.offset().top + (bottomEl.outerHeight(true) - bottomEl.outerHeight()) + bottomEl.outerHeight(true);
|
||||||
|
//console.log("bottomLoc: " + bottomEl.offset().top + " + (" + bottomEl.outerHeight(true) + ' - ' + bottomEl.outerHeight() +') + '+bottomEl.outerHeight(true));
|
||||||
var newHeight = viewPort.height() - (bottomLoc - scaleEl.outerHeight(true));
|
var newHeight = viewPort.height() - (bottomLoc - scaleEl.outerHeight(true));
|
||||||
|
//console.log("newHeight = " + viewPort.height() +" - " + bottomLoc + ' - ' + scaleEl.outerHeight(true));
|
||||||
var newWidth = ratio * newHeight;
|
var newWidth = ratio * newHeight;
|
||||||
if (newWidth > container.innerWidth()) {
|
if (newWidth > container.innerWidth()) {
|
||||||
newWidth = container.innerWidth();
|
newWidth = container.innerWidth();
|
||||||
|
@ -598,13 +609,15 @@ function scaleToFit(baseWidth, baseHeight, scaleEl, bottomEl) {
|
||||||
return parseInt($j(this).val());
|
return parseInt($j(this).val());
|
||||||
}).get();
|
}).get();
|
||||||
scales.shift();
|
scales.shift();
|
||||||
var closest;
|
var closest = null;
|
||||||
$j(scales).each(function() { //Set zms scale to nearest regular scale. Zoom does not like arbitrary scale values.
|
$j(scales).each(function() { //Set zms scale to nearest regular scale. Zoom does not like arbitrary scale values.
|
||||||
if (closest == null || Math.abs(this - autoScale) < Math.abs(closest - autoScale)) {
|
if (closest == null || Math.abs(this - autoScale) < Math.abs(closest - autoScale)) {
|
||||||
closest = this.valueOf();
|
closest = this.valueOf();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
if (closest) {
|
||||||
autoScale = closest;
|
autoScale = closest;
|
||||||
|
}
|
||||||
return {width: Math.floor(newWidth), height: Math.floor(newHeight), autoScale: autoScale};
|
return {width: Math.floor(newWidth), height: Math.floor(newHeight), autoScale: autoScale};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue