содержимое fancybox отображается внизу моей страницы

#jquery #fancybox

#jquery #fancybox

Вопрос:

У меня есть несколько div с изображениями в них, и при нажатии на них я хочу загрузить другую страницу .php с помощью fancybox. Содержимое загружено, но оно просто добавляется в конец страницы. у кого-нибудь когда-нибудь была эта проблема?

мой html:

 <div id="clickme">
  <img src="someimg.jpg" />
</div>
 

вот мой скрипт:

 $('#clickme').live('click', function(){
  $(this).fancybox({ 'href': 'somefile.php' });
});
 

Комментарии:

1. Вы включаете CSS-файл fancybox на свою страницу?

2. да, и все изображения находятся в другом каталоге, но я изменил все ссылки в файле css

3. Проверьте свой селектор #fancybox-wrap в css-файле fancybox и убедитесь, что он имеет position:absolute .

Ответ №1:

изначально я разделял css, изображения и js в свои собственные отдельные папки, и это не работало. если я просто скопирую папку fancybox и использую все оттуда, это работает

Ответ №2:

Вы можете обойти это, убедившись, что это находится в верхней части страницы:

 <!DOCTYPE HTML PUBLIC "- / / W3C / / DTD HTML 4.01 Transitional / / EN" "http://www.w3.org/TR/html4/loose.dtd ">
 

или

 <!DOCTYPE html>
 

Попробуйте «Просмотреть исходный код» на своей странице после загрузки в браузер, первой строкой должна быть строка doctype.

Ответ №3:

После нескольких часов работы я нашел ответ от владельца fancybox, пожалуйста, проверьте тему, если хотите: https://github.com/Taritsyn/WebMarkupMin/issues/66

Реальное решение — НЕ добавлять <!DOCTYPE html> директиву, вместо этого обернуть все содержимое в <DIV> тег и будет работать как шарм!