Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/19: Рейтинг темы: голосов - 19, средняя оценка - 5.00
Человек
 Аватар для dolte
331 / 205 / 63
Регистрация: 04.02.2013
Сообщений: 1,223

Галерея FancyBox

03.09.2013, 10:01. Показов 3732. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
При открытии фотографии, страница прокручивается вверх.
return false в коде вызова не работает, что делать ?

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
    $(document).ready(function() {
        $('.fancybox').attr('rel', 'gallery').fancybox({
            prevEffect : 'fade',
            nextEffect : 'fade',
            closeBtn  : true,
            arrows    : true,
            nextClick : true,
            
            
            afterLoad: function(){
                this.title='<a class="vkbtn" target="_blank" href="http://vk.com/share.php?url=' + this.href +'"></a><a target="_blank" href="http://vk.com/share.php?url=' + this.href +'"><span class="vkbtnh"></span></a>' + this.title;
                this.title='<a class="twtrbtn" target="_blank" href="http://twitter.com/share?url='+ this.href +'"></a><a target="_blank" href="http://twitter.com/share?url='+ this.href +'"><span class="twtbtnh"></span></a>' + this.title;
                },
                helpers:{
                title:{type:'outside'}}
                
                
            });
            
return false;
        });
Добавлено через 56 минут
И второй вопрос, каким образом передать ссылку на изображение, чтобы из Вконтакте переходить не к самой картинке в директории сайта, а на ту страницу где это изображение запостилось

Добавлено через 22 минуты
В старой версии fancybox'a помогало

JavaScript
1
2
3
4
5
6
7
    onComplete: function(links, index) {
                var self = $(links[index]);
                window.location.hash = index;
                },
                onClosed: function() {
                window.location.hash = '';
                },
Добавлено через 21 минуту
hash добавляю так:

JavaScript
1
2
3
4
5
6
7
8
9
afterLoad: function(){
            
                window.location.hash = this.href;
                this.title=document.location.href;
                
                this.title='<a target="_blank" href="http://vk.com/share.php?url=' + this.href +'"></a>' + this.title;
                
                this.title='<a target="_blank" href="http://twitter.com/share?url='+ this.href +'">твит</a>' + this.title;
                }
при перемотке фотографий он меняется. А как теперь отловить открытие фотогрфий с определенным хешем. чтобы можно было сразу по ссылке открыть это фото

Добавлено через 20 часов 13 минут
Убрал из body, width:100%, прокручиваться перестал.

Остальные вопросы актуальны.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
03.09.2013, 10:01
Ответы с готовыми решениями:

Fancybox галерея
Как сделать чтобы в модальное окно подгружались картинки которые в теге &lt;a&gt;&lt;/a&gt; , сейчас главной выступает та которая в img , а по клику в...

Галерея fancybox по клику на произвольный элемент
Приветствую! Скажите, пожалуйста, что я делаю не так. Разметка: &lt;div class=&quot;b&quot;&gt; &lt;span class=&quot;c&quot;&gt; &lt;a...

Галерея fancybox и валидация (атрибут rel)
Здравствуйте на странице несколько блоков с фото(разные категории) и к каждой фото я прикрепляю атрибут rel=id_block Т.е например на...

1
Человек
 Аватар для dolte
331 / 205 / 63
Регистрация: 04.02.2013
Сообщений: 1,223
04.09.2013, 17:12  [ТС]
Тема всё еще актуальна.
Использую версию 2.1.5

Добавлено через 14 минут
Как по хешу открыть картинку

Добавлено через 1 час 50 минут
По хешу открывается

JavaScript
1
2
3
4
if(window.location.hash) {
  $(thisHash).fancybox({
 
  }).trigger('click');
Теперь как передать Вконтакте картинку именно с этим хешем

Добавлено через 19 минут
В обработчик события поместил

JavaScript
1
window.location.hash = this.index;
но при клике на кнопку "Поделиться ВК" берется ссылка по которой было окно с галереей загружено, при прокрутке фото хеш обновляется, но кнопка всё равно берет первую загруженную ссылку

Добавлено через 2 часа 44 минуты
Решил вопрос так:

JavaScript
1
2
3
function shareLoad() {
    $.getScript('share.js');
}
т.е по событию onclick="shareLoad();" каждый раз загружаем нужный скрипт

и повесил их на открытие фотки, и кнопки вперед/назад

Добавлено через 30 минут
Всплыла другая проблема, при шаринге вконтакте, берутся все картинки со страницы, а не та которую мы открыли

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
$(document).ready(function() {
    e = document.getElementsByTagName('div');
    for (var k = 0; k < e.length; k++) {
        if (e[k].className.indexOf('shareblock') != -1) {
            if (e[k].getAttribute('data-url') != -1) u = e[k].getAttribute('data-url');
            if (e[k].getAttribute('data-title') != -1) t = e[k].getAttribute('data-title');
            if (e[k].getAttribute('data-image') != -1) i = e[k].getAttribute('data-image');
            if (e[k].getAttribute('data-description') != -1) d = e[k].getAttribute('data-description');
            if (e[k].getAttribute('data-path') != -1) f = e[k].getAttribute('data-path');
            if (!f) {
                function path(name) {
                    var sc = document.getElementsByTagName('script'),
                        sr = new RegExp('^(.*/|)(' + name + ')([#?]|$)');
                    for (var i = 0, scL = sc.length; i < scL; i++) {
                        var m = String(sc[i].src).match(sr);
                        if (m) {
                            if (m[1].match(/^((https?|file)\:\/{2,}|\w:[\/\\])/)) return m[1];
                            if (m[1].indexOf("/") == 0) return m[1];
                            b = document.getElementsByTagName('base');
                            if (b[0] && b[0].href) return b[0].href + m[1];
                            else return document.location.pathname.match(/(.*[\/\\])/)[0] + m[1];
                        }
                    }
                    return null;
                }
                f = path('share.js');
            }
            if (!u) u = location.href;
            if (!t) t = document.title;
 
            function desc() {
                var meta = document.getElementsByTagName('meta');
                for (var m = 0; m < meta.length; m++) {
                    if (meta[m].name.toLowerCase() == 'description') {
                        return meta[m].content;
                    }
                }
                return '';
            }
            if (!d) d = desc();
            u = encodeURIComponent(u);
            t = encodeURIComponent(t);
            t = t.replace('\'', '%27');
            i = encodeURIComponent(i);
            d = encodeURIComponent(d);
            d = d.replace('\'', '%27');
            var vkImage = '';
            if (i != 'null' && i != '') vkImage = '&image=' + i;
            var s = new Array(      //Твиттер массив
            '"#" data-count="twi" onclick="window.open(\'https://twitter.com/intent/tweet?text=' + t + '&url=' + u + '\', \'_blank\', \'scrollbars=0, resizable=1, menubar=0, left=100, top=100, width=550, height=440, toolbar=0, status=0\');return false" title="Добавить в Twitter"'
            );
            
            var so = new Array (    //Вконтакте массив
            '"#" data-count="vk" onclick="window.open(\'http://vk.com/share.php?url=' + u + '&title=' + t + vkImage + '&description=' + d + '\', \'_blank\', \'scrollbars=0, resizable=1, menubar=0, left=100, top=100, width=550, height=440, toolbar=0, status=0\');return false" title="Поделиться В Контакте"'
            );
            
            var l = '';             //Твиттерим
            for (j = 0; j < s.length; j++) l += 
            '<div class="twbtns"><a rel="nofollow" href=' + s[0] + ' target="_blank"></a></div>';
            
            var lo = '';            //Вконтактерим
            for (jo = 0; jo < so.length; jo++) lo +=
            '<div class="vkbtns"><a rel="nofollow"  href=' + so[0] + ' target="_blank"></a></div>';
                        
            e[k].innerHTML = '<div id="share">' + l + lo +'</span>'; //Показываем в fancybox
        }
    };
});
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
04.09.2013, 17:12
Помогаю со студенческими работами здесь

Fancybox!
Как изменять размеры fancybox модального окна....у меня есть несколько модальных окон которые открываются при нажатии на кнопку .... всем...

Настройка Fancybox
Добрый день. Подключил к сайту Fancybox следующим образом &lt;script type=&quot;text/javascript&quot;...

Беда с fancybox
Привет, такая штука, хотел сделать при помощи fancybox отправку данных(номер,имя,сообщение) методом post на базу данных. После ввода данных...

Авторесайз fancybox
Привет! Кто нибудь знает, как задать впслывающему окну fancybox'a автоматическую высоту? Есть метод $.fancybox.resize(); , но как его...

Перевод fancybox
Извините за глупый вопрос, но я не давно только начал заниматься web - программированием, и подключил к сайту fancybox , и у меня почему то...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение Это мой обзор планшета X220 с точки зрения школьника. Недавно я решила попытаться уменьшить свой. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru