У меня есть клиент, который хочет открывать изображения разных размеров в центрированном всплывающем окне. Я пытался заставить их использовать FancyBox, но они не хотят вставной презентации, так что ...
Первоначально я открывал универсальное всплывающее окно, размер которого изменялся и центрировался на нагрузке в зависимости от размера изображения, но им не нравился сдвиг, поэтому я добавил PHP-скрипт для отображения размеров и использовал jQuery для получения информации о размере для подачи во всплывающее окно. звонок вверх.
Но, похоже, задержка, вызываемая этим, отключает все блокировщики всплывающих окон.
Вот JS
$("#portfolioBigPic").click(function () {
var src = $("#portfolioBigPic").attr('src');
var ar = src.split('/');
var fname = ar.pop();
fname = '/g/portfolio/clients/big/' + fname;
$.get("imgsize.php", { i: fname}, function(data){
var dim = data.split(",");
popit(fname,dim[0],dim[1]);
});
});
function popit(img,w,h) {
var features = 'width='+w+',height='+h+', toolbar=0, location=0, directories=0, status=0, menubar=0, scrollbars=0, resizable=1,';
var left = (screen.width/2)-(w/2);
var top = 0;
features += 'top='+top+',left='+left;
bigpic = window.open('portfolioBigPic.php?img='+img, 'bigpic',features);
bigpic.focus();
}
Единственная разница между уклонением от блокировщиков и сбоем состоит в том, что я добавил AJAX .get и использую его для указания w и h.
Есть мысли о том, как этого избежать? Может быть, я должен использовать PHP, чтобы получить ширину и высоту всех больших изображений и написать их массив JS при загрузке этой страницы? Прав ли я, что задержка, вызванная извлечением данных, приводит к отключению блокировщиков?
Мысли? Любой совет высоко ценится.
JG
// РЕДАКТИРОВАТЬ - добавить мое разрешение
Согласно ответу Спика, мне нужно было убрать вызов popit () из обработчика успеха для вызова AJAX, чтобы этот вызов происходил в контексте события click пользователя.
Поэтому я понял, что, когда мои маленькие пальцы нажимаются, чтобы установить предварительный просмотр большого изображения (#portfolioBigPic), я могу посмотреть полноразмерное изображение в этой точке. Так что я переместил размер AJAX, чтобы посмотреть на click () для больших пальцев.
HTH кто-то.