<hotspot name="foto_1" style="skin_hotspotstyle" url="skin/img.png" ath="5.767" atv="-21.968" onclick="js(openPopup('Памятник Пушкину', 'Puskin.jpg', 1000, 'iframe'))" />
Код в html файле, который подключает fancebox такой :
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
<script type="text/javascript" src="fancybox/lib/jquery.mousewheel-3.0.6.pack.js"></script>
<link rel="stylesheet" href="fancybox/source/jquery.fancybox.css?v=2.1.5" type="text/css" media="screen" />
<script type="text/javascript" src="fancybox/source/jquery.fancybox.pack.js?v=2.1.5"></script>
<script type="text/javascript">
function openPopup(t,linktourl,w,h,type)
{
$.fancybox({
'title' : t,
'width' : w,
'height' : h,
'href' : linktourl,
'type' : type,
'autoScale' : 'true',
'overlayColor' : '#000000',
'overlayAlpha' : '0.3'
});
}
<hotspot name="foto_1" style="skin_hotspotstyle" url="skin/img.png" ath="5.767" atv="-21.968"
array="[{'href': 'Puskin.jpg','title': 'Памятник Пушкину',},{'href': 'Lermontov.jpg','title': 'Памятник Лермонтову',}]"
onclick="js( openPopup(get(array)) );" />
я не программер и на чистоту кода не претендую. работает и хорошо )))
<!-- Скрипты fancybox -->
">http://code.jquery.com/jquery-latest.min.js"></scr...
<script type="text/javascript" src="fancybox/lib/jquery.mousewheel-3.0.6.pack.js"></script>
<link rel="stylesheet" href="fancybox/source/jquery.fancybox.css?v=2.1.5" type="text/css" media="screen" />
<script type="text/javascript" src="fancybox/source/jquery.fancybox.pack.js?v=2.1.5"></script>
Здесь новая строка -<script type="text/javascript" src="fancybox/source/fancybox.options.js"></script> <script type="text/javascript">
function openPopup(t,linktourl,w,h,type)
{
$.fancybox({
'title' : t,
'width' : w,
'height' : h,
'href' : linktourl,
'type' : type,
'autoScale' : 'true',
'overlayColor' : '#000000',
'overlayAlpha' : '0.3'
});
}
function display_box (url) {
$.fancybox({
'href': url,
'width' : '100%',
'height' : '100%',
'autoScale' : false,
'transitionIn' : 'none',
'transitionOut' : 'none',
'type' : 'iframe'
});
}
</script>
</script>
<!-- Конец скриптов -->
Все равно не заработало:( Сам тур вот он - http://panorama.16mb.com/Panoram/ostafievo/ostafievo.html
что сделать с xml я уже выше отписал. надо передать массив. уберите 2 хотспота "foro_3" и "spot3" в сцене "scene_2" и создайте:
<hotspot name="spot2" style="skin_hotspotstyle" url="skin/img.png" ath="-51.806" atv="-3.971"
array="[
{'href': 'Pavilion.jpg','title': 'Беседка',},
{'href': 'media/pavilion_leto.JPG','title': 'Беседка летом',}
]"
onclick="js( openPopup(get(array)) );" />
дальше изучаем метод JSON.parse https://learn.javascript.ru/json
в html замените функцию openPopup на:
function openPopup(str) {
var newString = str.replace(/\'/g,"\"");
var galarray = JSON.parse(newString);
$.fancybox(galarray,{
maxWidth: '90%',
maxHeight: '90%',
padding: 2,
transitionIn: 'none',
transitionOut: 'none',
loop: true,
nextSpeed: 350,
prevSpeed: 350,
closeClick: false,
helpers: {
title: {
type: 'inside'
},
thumbs: {
width : 120,
height : 80,
}
}
});
}
и уберите лишний тег </script> )))
библиотеки fancybox советую подключать локально. для нормальной работы, если вдруг инет пропадает или если надо автономный тур отдать заказчику.
Библиотеки fancybox локально - это имеется в виду, что необходимо, чтобы все бралось из локальных папок - без путей на сайты с библиотеками, проще говоря, чтобы не было таких вот строк - <script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script> ?
function krpano() {
return document.getElementById("krpanoSWFObject");
}
<link rel="stylesheet" href="js/source/jquery.fancybox.css" type="text/css" media="screen" />
<link rel="stylesheet" href="js/source/helpers/jquery.fancybox-thumbs.css" type="text/css" media="screen" />
<script type="text/javascript" src="js/lib/jquery-1.10.1.min.js"></script>
<script type="text/javascript" src="js/lib/jquery.mousewheel-3.0.6.pack.js"></script>
<script type="text/javascript" src="js/source/jquery.fancybox.pack.js"></script>
<script type="text/javascript" src="js/source/helpers/jquery.fancybox-thumbs.js"></script>
у меня fancybox версии 2.1.5. прямая ссылка: https://github.com/fancyapps/fancyBox/zipball/v2.1...
берем из архива 2 папки lib и source. копируем их в папку js в корне вирт. тура. подключаем, как в сообщении выше. проверяем пути и имена подключенных файлов, открывая их в браузере по прямой ссылке. все должно открываться.
могу сделать готовый рабочий пример, но это ведь будет не интересно )))
поясню значение 2-х строчек в скрипте. я над этим ломал голову целый месяц.
в документации к fancyBox описан метод API
$.fancybox.open( [group], [options] )
Launch fancyBox, the same as $.fancybox([group], [options])
First parameter can be in various types, examples:
$.fancybox([
{href : 'img1.jpg', title : 'Title'},
{href : 'img2.jpg', title : 'Title'}
]); - array containing objects
отлично, то что надо. но! с одинарными кавычками не работает. а двойные не допускаются в крпано. и из крпано будет передана строка, а не массив.
строка var newString = str.replace(/\'/g,"\""); заменяет одинарные кавычки на двойные.
строка var galarray = JSON.parse(newString); преобразует строку в нужный нам массив.
все остальное проще простого. куча примеров на сайте http://fancyapps.com/fancybox/ ну а подключить нужные скрипты в html странице, это даже обсуждать нечего.