Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
 Аватар для [FENIX]
4 / 4 / 2
Регистрация: 09.10.2009
Сообщений: 528

Конфликт fancybox и bxSlider

09.09.2017, 15:18. Показов 2141. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет!

Есть сайт:

http://trikolor-orenburg.ru/

Когда нажимаем на блок "Я хочу купить триколор" - появляются карточки с товарами. Если в какой-либо из этих карточек нажать на ссылку "подробнее" - появляется модальное окно с подробным описанием конкретного товара, но! туда я вставляю слайдер - bxslider, но он почему то не хочет работать. Есть большая картинка, которая отображает сам товар, и есть 3 маленьких, щелкая на которые, мы как бы перелистываем на другой слайд. Так вот, эта "большая" картинка совсем не перелистывается, т.е. слайдер попросту не работает в модальном окне.

Вычитал что инициализацию слайдера надо делать после того, как модальное окно появится - я так пробовал, что то всё равно не получается. Пробовал делать перезагрузку слайдера внутри функции afterShow fancybox() и пробовал делать reloadSlider при клике на ссылку "подробнее" - всё равно он не хочет работать.

Народ, кто сталкивался с этим, помогите пожалуйста, как это лечится? Подробнее во вложении.

Код index.html (до тега <body>):

HTML5
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
<!DOCTYPE html>
<html>
    <head>
      <meta charset="utf-8">
        <title>Триколор ТВ Оренбург. Обменять, купить спутниковое оборудование в магазине компании Спутник, онлайн-заказ</title>
        <meta name="keywords" content="Вы можете обменять, купить спутниковое оборудование Триколор в нашем магазине" />
        <meta name="description" content="Фирменный магазин Триколор ТВ предлагает вам купить или обменять спутниковое оборудование." />
        <link rel="stylesheet" href="assets/css/uikit.css" />
        <link rel="stylesheet" type="text/css" href="assets/css/custom.css">
        <link rel="stylesheet" type="text/css" href="assets/css/jquery.fancybox.css">
        <link rel="stylesheet" type="text/css" href="assets/css/jquery.bxslider.css">
        <script src='https://www.google.com/recaptcha/api.js' async defer></script>
        <script src="assets/js/jquery.js"></script>
        <script src="assets/js/uikit.min.js"></script>
        <script src="assets/js/uikit-icons.js"></script>
        <script src="assets/js/jquery.fancybox.js"></script>
        <script src="assets/js/jquery.bxslider.js"></script>
        <script src="assets/js/prod_desc_fancy.js"></script>
 
        <script>
            $(document).ready(function(){
 
 
                slider = $('.bxslider').bxSlider({
                  pagerCustom: '#bx-pager'
                });
 
                //Вызов модального окна для детального просмотра товара
                $('.trigger').fancybox({
                    afterShow: function(){
                        
                        slider.reloadSlider();
                    }
                });
 
                
 
 
                
                
 
                //var $number;
 
 
                $('.trigger').on('click',function(){
                    slider.reloadSlider();
                });
 
 
                //Вызов формы обратного звонка
                $('#modal').on('click','a.myButton',function(){
 
                    $('.fancybox-container').css({"display":"none"});
                    $('#modal1').fadeIn();
                });
 
 
 
 
                $('form').submit(function(e){
                    var $form = $(this);
 
                    $.ajax({
                        type: $form.attr('method'),
                        url: $form.attr('action'),
                        data: $form.serialize()
                    }).done(function(result){
                        alert('Сообщение успешно отправлено!' + result);
                        $('#modal1').fadeOut('slow', function(){
                            
                        });
 
                    }).fail(function(result){
                        alert('Ошибка при отправке сообщения!' + result);
                    });
 
                    //отмена действия по умолчанию для кнопки submit
                    e.preventDefault();
                });
 
 
                //Делаем поле телефона обязательным для заполнения
                $('input[name=phone]').on('input keyup',function(e){
                    if($(this).val()=='')
                        $('form input[type=submit]').prop('disabled',true);
                    else
                        $('form input[type=submit]').prop('disabled',false);    
                });
 
 
                $('.buy').on('click', function(){
                    $('.cards').fadeIn();
                });
 
                $('.change').on('click', function(){
                    $('html, body').animate({
                        scrollTop: $("#exchange").offset().top - 100
                    }, 1000);
                });
                
            });
        </script>
 
        
        <style type="text/css">
<!--
.style1 {color: #FF0000}
-->
        </style>
</head>
Код самой карточки товара:

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
....
 
<div class="item_1">
                    <div class="uk-card uk-card-default uk-card-body product">
                        <div class="product-photo">
                            <img src="images/body/GS 591 1.png" width="216" height="163" />                 
                        </div>
                    
                        <div class="product-desc">
                            <div class="desc">
                                Спутниковый ресивер-клиент Триколор ТВ GS-С5911<br/>
                            </div>
                            <div class="price">
                                3 900 <span>руб</span>
                            </div>
                            <a href="#" class="myButton" uk-toggle="target:#modal1">купить</a>
                            <a href="#modal"  class="trigger read_more">подробнее</a>
                        </div>
 
                    </div>
            </div>
 
....
https://fotki.yandex.ru/next/u... ew/1013143
Миниатюры
Конфликт fancybox и bxSlider  
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.09.2017, 15:18
Ответы с готовыми решениями:

Не получается подключить слайдер картинок. Конфликт. bxslider + fancybox + неведомая ф
http://dev1.voyazhe-tur.ru/index.php/countries Начинается какой-то супер спам внутри документа. Сам себя порождает((

Конфликт библиотек слайдера и fancybox
Привет. Не могу решить проблему. Есть на странице несколько скриптов. Подключаю FancyBox (плагин для фотогалереи) - вырубаются другие...

bxslider
есть: $('.bxslider').bxSlider({ pager: false, infiniteLoop: false, hideControlOnEnd: true, nextSelector: '#slider-next', ...

2
 Аватар для [FENIX]
4 / 4 / 2
Регистрация: 09.10.2009
Сообщений: 528
09.09.2017, 19:36  [ТС]
Немного видоизменил, теперь для 1-й карточки слайдер нормально работает, а вот для остальнх размер сменяющейся картинки (высота) вообще стала в 0.

Вот скриншот: https://fotki.yandex.ru/next/u... ew/1013187

Вот код index.html:

HTML5
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
<!DOCTYPE html>
<html>
    <head>
      <meta charset="utf-8">
        <title>Триколор ТВ Оренбург. Обменять, купить спутниковое оборудование в магазине компании Спутник, онлайн-заказ</title>
        <meta name="keywords" content="Вы можете обменять, купить спутниковое оборудование Триколор в нашем магазине" />
        <meta name="description" content="Фирменный магазин Триколор ТВ предлагает вам купить или обменять спутниковое оборудование." />
        <link rel="stylesheet" href="assets/css/uikit.css" />
        <link rel="stylesheet" type="text/css" href="assets/css/custom.css">
        <link rel="stylesheet" type="text/css" href="assets/css/jquery.fancybox.css">
        <link rel="stylesheet" type="text/css" href="assets/css/jquery.bxslider.css">
        <script src='https://www.google.com/recaptcha/api.js' async defer></script>
        <script src="assets/js/jquery.js"></script>
        <script src="assets/js/uikit.min.js"></script>
        <script src="assets/js/uikit-icons.js"></script>
        <script src="assets/js/jquery.fancybox.js"></script>
        <script src="assets/js/jquery.bxslider.js"></script>
        <script src="assets/js/prod_desc_fancy.js"></script>
 
        <script>
            $(document).ready(function(){
 
 
                slider = $('.bxslider').bxSlider({
                  pagerCustom: '#bx-pager'
                });
 
                //Вызов модального окна для детального просмотра товара
                $('.trigger').fancybox({
 
                    
                    'onComplete': function(){
                        
                        slider = $('.bxslider').bxSlider({
                          pagerCustom: '#bx-pager'
                        });
 
                    }
                });
 
                
 
 
                
                
 
                //var $number;
 
 
                $('.trigger').on('click',function(){
                    //slider.reloadSlider();
                });
 
 
                //Вызов формы обратного звонка
                $('#modal').on('click','a.myButton',function(){
 
                    $('.fancybox-container').css({"display":"none"});
                    $('#modal1').fadeIn();
                });
 
 
 
 
                $('form').submit(function(e){
                    var $form = $(this);
 
                    $.ajax({
                        type: $form.attr('method'),
                        url: $form.attr('action'),
                        data: $form.serialize()
                    }).done(function(result){
                        alert('Сообщение успешно отправлено!' + result);
                        $('#modal1').fadeOut('slow', function(){
                            
                        });
 
                    }).fail(function(result){
                        alert('Ошибка при отправке сообщения!' + result);
                    });
 
                    //отмена действия по умолчанию для кнопки submit
                    e.preventDefault();
                });
 
 
                //Делаем поле телефона обязательным для заполнения
                $('input[name=phone]').on('input keyup',function(e){
                    if($(this).val()=='')
                        $('form input[type=submit]').prop('disabled',true);
                    else
                        $('form input[type=submit]').prop('disabled',false);    
                });
 
 
                $('.buy').on('click', function(){
                    $('.cards').fadeIn();
                });
 
                $('.change').on('click', function(){
                    $('html, body').animate({
                        scrollTop: $("#exchange").offset().top - 100
                    }, 1000);
                });
                
            });
        </script>
 
        
        <style type="text/css">
<!--
.style1 {color: #FF0000}
-->
        </style>
</head>
Попробовал использовать метод onComplete - сработало, но только для 1-й карточки товара. Походу и правда надо как то циклом делать.
Миниатюры
Конфликт fancybox и bxSlider  
0
 Аватар для [FENIX]
4 / 4 / 2
Регистрация: 09.10.2009
Сообщений: 528
23.09.2017, 16:57  [ТС]
Заметил ещё вот такой баг:

Когда жмём по ссылке "подробнее" у карточки товара, появляется модальное окно - тут всё нормально отображается, но слайдер почему то не рабочий: отображается большая картинка товара, и 3 маленьких сниху, но если по какой-либо из трёх маленьких кликнуть - то слайдер не "перелистывает" большую картинку, и почему то полностью закрывается всё модальное окно, и у других карточек товаров ссылка "подробнее" становится недоступной - по ней не кликнуть, блок с id="modal1" как был display:block, так в этом же состоянии и остался, и как бы закрывает собой остальные элементы страницы.

Кто знает, подскажите пожалуйста, как это лечится?

http://trikolor-orenburg.ru/ вот тут всё это лежит.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.09.2017, 16:57
Помогаю со студенческими работами здесь

Ширина у bxslider
Всем привет! Хочу использовать на своём сайте слайдер bxslider. Может кто-нибудь сталкивался с ним? Подскажите, пожалуйста, как изменить...

Bxslider в замешательстве
Ребят такая тема не могу разобраться с слайдером bxslider прогуглил ничего не нашел пока по этой теме. хочу сделать как...

Полноэкранный bxslider с шапкой
Есть bxslider в виде: &lt;ul class=&quot;bxslider&quot;&gt; &lt;li id=&quot;1&quot; style='background: transparent url(&quot;../images/1-1.jpg&quot;);'&gt; &lt;div...

Bxslider - несколько на одной странице
Добрый день кто пользуется bxslider может знает в чём дело может быть, делаю как на картинке такую смену автомобилей плюс в каждой свой...

Вертикальный слайдер bxSlider повторение прокрутки
Имеется вертикальный слайдер bxSlider(), количество слайдов допустим 7. При авто-прокрутке вверх нижние слайды соответственно уходят вверх...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
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
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru