mirror of
https://github.com/SickGear/SickGear.git
synced 2024-12-23 19:23:37 +00:00
e56303798c
Initial SickGear for Python 3.
99 lines
2.4 KiB
JavaScript
99 lines
2.4 KiB
JavaScript
function getContainedSize(img){
|
|
var width, height, ratio;
|
|
try {
|
|
ratio = img.naturalWidth / img.naturalHeight;
|
|
width = height = img.height;
|
|
width *= ratio;
|
|
if (width > img.width) {
|
|
height = width = img.width;
|
|
height /= ratio;
|
|
}
|
|
} catch (error) {
|
|
width = height = 0;
|
|
}
|
|
return {w:width, h:height}
|
|
}
|
|
|
|
function removeImageBackground(oImage){
|
|
var image$ = $(oImage).load(function(){
|
|
// swap out placeholder
|
|
if (-1 !== $(this).css('background-image').indexOf('poster-person.jpg')){
|
|
|
|
$(this).css('background', 'transparent');
|
|
var sizeImage = getContainedSize(oImage);
|
|
|
|
if (0 < sizeImage.w){
|
|
if (sizeImage.w < oImage.width){
|
|
|
|
$(this).css('width', 'auto');
|
|
|
|
} else if (sizeImage.h < oImage.height){
|
|
|
|
var heightDiff = oImage.height - sizeImage.h,
|
|
marginBottom = Math.floor(heightDiff / 2),
|
|
roundError = Math.floor(oImage.height - sizeImage.h - (marginBottom * 2)),
|
|
marginTop = marginBottom + ((0 < roundError) ? roundError : 0);
|
|
|
|
/* if img is lower than header name text, align it to top */
|
|
if(35 < marginTop){
|
|
marginBottom += marginTop;
|
|
marginTop = 0;
|
|
}
|
|
|
|
$(this).css('height', 'auto')
|
|
.css('marginTop', marginTop)
|
|
.css('marginBottom', marginBottom);
|
|
}
|
|
}
|
|
}
|
|
});
|
|
|
|
// trigger the load handler if the image is already loaded
|
|
if (image$[0].complete){
|
|
image$.trigger('load');
|
|
}
|
|
}
|
|
|
|
function scaleImage(oImage) {
|
|
var image$ = $(oImage).load(function() {
|
|
|
|
var sizeImage = getContainedSize(oImage),
|
|
containerWidth = $(oImage).parent().width()
|
|
|
|
if (sizeImage.w > containerWidth) {
|
|
// image width is wider than its container so reduce image height to down scale
|
|
var ratio = (containerWidth - 4) / sizeImage.w,
|
|
height = Math.floor(oImage.height * ratio);
|
|
|
|
$(this).css('height', height);
|
|
}
|
|
});
|
|
|
|
// trigger the load handler if the image is already loaded
|
|
if (image$[0].complete){
|
|
image$.trigger('load');
|
|
}
|
|
}
|
|
|
|
var addQTip = (function(){
|
|
$(this).css('cursor', 'help');
|
|
$(this).qtip({
|
|
show: {solo:true},
|
|
position: {viewport:$(window), my:'right center', at: 'left center', adjust:{y: 0, x: 2}},
|
|
style: {tip: {corner:true, method:'polygon'}, classes:'qtip-dark qtip-rounded qtip-shadow'}
|
|
});
|
|
});
|
|
|
|
$(function() {
|
|
objectFitImages();
|
|
|
|
$('#person .cast-bg, #character .cast-bg').each(function(i, oImage){
|
|
removeImageBackground(oImage);
|
|
});
|
|
|
|
$('#display-show .cast-bg').each(function (i, oImage){
|
|
scaleImage(oImage);
|
|
});
|
|
|
|
$('.addQTip').each(addQTip);
|
|
});
|