Плавающий блок

Тема в разделе "JavaScript", создана пользователем repacksman, 11 мар 2015.

Модераторы: ZiX
  1. repacksman

    repacksman

    Регистр.:
    12 июн 2012
    Сообщения:
    154
    Симпатии:
    2
    Не могу понять почему блок http://prntscr.com/6f5akv перестает плавать когда я нажимаю на кнопку "купить"? За плавание отвечает файл h ttp://shop-script.temp089.pp.ua/wa-data/public/shop/themes/default1/default.shop.js 206 строка. Сайт h ttp://shop-script.temp089.pp.ua/pizza/ . Неделю голову ломаю безрезультатно. Зарание спасибо
     
  2. rebbus

    rebbus Постоялец

    Регистр.:
    13 окт 2010
    Сообщения:
    110
    Симпатии:
    14
    у меня с мозиллы вообще не плавает
     
    repacksman нравится это.
  3. xoxmo

    xoxmo Постоялец

    Регистр.:
    24 мар 2008
    Сообщения:
    142
    Симпатии:
    86
    просто после добавления товара у дива <div id="cart-widget" class="fixed"> пропадает класс ""fixed" и он становится таким <div id="cart-widget" class="default">, соответственно и аттрибут position: fixed; превращается в position: relative;
    копайте в эту сторону.
     
    repacksman нравится это.
  4. WhisperingEchoes

    WhisperingEchoes Создатель

    Регистр.:
    9 апр 2008
    Сообщения:
    23
    Симпатии:
    6
    там в общем все доступно написано:


    $(window).scroll(function(){
    if ( $(this).scrollTop() > 252 && $menu.hasClass("default") ){
    $menu.removeClass("default").addClass("fixed");
    } else if($(this).scrollTop() <= 252 && $menu.hasClass("fixed")) {
    $menu.removeClass("fixed").addClass("default");
    }
    });

    когда скролл больше 252 то блок становится с классом fixed это и есть "плавание" а когда скроллменьше 252 и имеется класс фиксед то этот класс удаляется и подставляется класс дефолт, поэтому "плавание" пропадает. Или измените исловя при которых это присходит или просто пропишите стили этому блоку чтобы он не зависел от класса.
     
    repacksman нравится это.
  5. Ultharas

    Ultharas Создатель

    Регистр.:
    26 сен 2014
    Сообщения:
    27
    Симпатии:
    10
    Вот кроссбраузерный плавающий
    var sticky_menu = document.querySelectorAll('.brand-store-menu')[0];

    if (sticky_menu)
    {
    stop = 293;
    docBody = document.documentElement || document.body.parentNode || document.body;
    hasOffset = window.pageYOffset !== undefined;
    window.onscroll = function (e)
    {
    scrollTop = hasOffset ? window.pageYOffset : docBody.scrollTop;
    if (scrollTop >= stop)
    {
    sticky_menu.style.cssText = 'position: fixed; top: 0; width: 1000px; z-index: 999;';
    }
    else
    {
    sticky_menu.style.cssText = '';
    }
    }
    }

    Для IE ключевые моменты тут document.querySelectorAll(чтоб искать обращаться к элементу по классу), document.documentElement(чтоб посчитать проскроленное через scrollTop) и sticky_menu.style.cssText(чтоб добавить стиль с нужными атрибутами)
     
    repacksman нравится это.
  6. repacksman

    repacksman

    Регистр.:
    12 июн 2012
    Сообщения:
    154
    Симпатии:
    2
    Ви меня не правильно поняли. Класи перестают менятся когда нажимаеш на кнопку купить. Сами можете посмотреть: нажимаете на кнопку "В корзину" и блок всегда мает клас default
     
  7. nononameman

    nononameman

    Регистр.:
    3 мар 2014
    Сообщения:
    305
    Симпатии:
    210
    Есть мнение, что добавление в корзину реализовано на ajax, область перегружается с корзиной и класс пропадает.
     
  8. ankor

    ankor Создатель

    Регистр.:
    28 апр 2007
    Сообщения:
    37
    Симпатии:
    6
    Сам на днях столкнулся с багом, переставал работать слайдер когда кнопка формы нажималась, причиной оказался конфликт из за использования двух разных jquery библиотек, попробуйте отключить у вас тоже дважды подключен в:
    <script type="/wa-content/js/jquery/jquery-1.11.1.min.js" ></script>
    <script type="/wa-content/js/jquery/jquery-migrate-1.2.1.min.js"></script>