/ / Оразмерете fancybox до размер на видео vimeo - jquery, fancybox, vimeo

Преоразмеряване на. В размер на видеоматериала - jquery, fancybox, vimeo

Имам няколко миниатюри на видео на уеб страница. Когато щракнете върху такъв, искам fancybox да отвори и възпроизведе видеото Vimeo без черни ленти, така че съотношението на страните трябва да е правилно. За съжаление, fancybox не може да открие правилната ширина и височина на видеото.

Написах код на jquery, но останах в последната стъпка:

var $height = screen.height/2;
var $aspectRatio = 16/9; // Default aspect ratio
var $width = $aspectRatio * $height; // Default width

$("a.fancybox-media").fancybox({
openEffect  : "none",
closeEffect : "none",
width : $width,
height : $height,
autoDimensions : false,
beforeLoad : function() {
var $vimeoVideoID = jsTheme.fancybox.getVimeoId(this.href);

$.getJSON("http://www.vimeo.com/api/v2/video/" + $vimeoVideoID + ".json?callback=?", {format: "json"}, function(data) {
// Calculate aspect ratio & new width
$aspectRatio = data[0].width / data[0].height;
$width = $aspectRatio * $height;
}).done(function() {
// Resize fancybox to this width & height. Doesn"t work!
this.width = $width;
this.height = $height;
});
}
});

Мога да извърша обаждане в API и да извлека ширината и височината от API на Vimeo. Изчислявам новата ширина въз основа на това съотношение. Но не мога да задам ширината. Дори ако твърдо кодирам ширината в done функция като this.width = "3000" не актуализира fancybox.

Ако го сложа this.width = "3000" извън изпълнената функция, тя работи. Изглежда, че не мога да актуализирам fancybox от свършената функция. Мога ли да принудя тази актуализация? Някой има ли предложение?

Отговори:

0 за отговор № 1

Опитайте тази : (Първо вземете данни, след това отворете Fancybox)

var id = 132693003;
$.ajax({
dataType: "json",
url: "http://www.vimeo.com/api/v2/video/" + id + ".json?callback=?",
success: function (json) {
var w = json[0]["width"];
var h = json[0]["height"];
$.fancybox.open({
width: w,
height: h,
maxWidth: 1240,
padding: 0,
type: "iframe",
aspectRatio: true,
scrolling : "no",
href: "//player.vimeo.com/video/" + id + "?color=d50000&autoplay=1&hd=1&show_title=0&show_byline=0&show_portrait=0&fullscreen=1"
});
}
});

PS : Без медиен помощник на Fancybox</ EM>