1 Отредактировано Sergey T. (27.08.2015 13:43:05)

Тема: Всплывающее окно при добавлении товара в корзину

Есть необходимость добавить всплывающее окно после того как покупатель положил товар в корзину, подскажите как реализовать?
Т.е. чтобы после нажатия на "в корзину" в каталоге товаров и в карточке самого товара появлялось всплывающее окно на 3-5 секунд с произвольным содержимым и потом исчезало. Планируется выводить указатель на то место, где сейчас находится корзина, чтобы покупателю было проще ориентироваться.

http://i72.fastpic.ru/big/2015/0827/83/7fa8fe660f347e086bbe658657889d83.jpg
http://i68.fastpic.ru/big/2015/0827/d6/de3b01aa6b0baa9e3e8b66137dedf8d6.jpg

Re: Всплывающее окно при добавлении товара в корзину

У нас такое реализовано было здесь
http://nefertiti-gsfr.ru/product/plat-e-00410-61061/
Кнопка в корзину представляет собой такой вид:

<div class="addToCartContainer" data-cart-url="{$router->getUrl('shop-front-cartpage')}">
     <a href="{$router->getUrl('shop-front-cartpage', ["add" => $product.id])}" class="buyButton addToCart noShowCart" data-product-page="1">В корзину <i></i></a>
</div>

А на класс addToCartContainer навешено событие, которое дописывает внутрь нужный нам код. В данном случае это выглядит так(theme.js):

var qCartAdd; //Таймер показа подсказки при покупке
    
/**
* Скрывать подсказку показывающую, что товар добавлен в корзину
* 
*/
function hideCartHint(){
    clearTimeout(qCartAdd); //Очищаем таймер, если он установлен
    $("#cartHint").stop(true,true).fadeOut('slow',function(){ //Делаем затухание
        $("#cartHint").remove(); //Удаляем добавлнный нами HTML
    }); 
} 

$(function() {

  /**
  * Событие которое вешается добавление в корзину, чтобы расширить функционал при добавлении в корзину. 
  * product.add это событие которое вызывается при добавлении в корзину
  * @param object e - объект события
  * @param object params - параметры из функции добавления в корзину
  */
  $('body').on('product.add',function(e, params){
        clearTimeout(qCartAdd); //Очищаем таймер, если он установлен
        var _this = e.target; //Сама кнопка
        var url   = $(_this).closest('[data-cart-url]').data('cart-url'); //Откуда берём url корзины
        $('#cartHint').stop(true,true).remove(); //Погасим прошлое всплывание, если несколько раз сразу нажали
        $(_this).closest('.addToCartContainer').append('<div id="cartHint" class="cartHint"><div><i></i>Товар добавлен в корзину<br/><a href="'+url+'">Перейти в корзину</a></div></div>'); //Добавляем код внутрь
        $("#cartHint").fadeIn(200,function(){ //Делаем плавный показ
            qCartAdd = setTimeout('hideCartHint()', 3000); //Делаем затухание через 3 секунды
        });
    });
});

Ну соответственно, надо будет настроить css под себя и разобраться javascript, по другому никак.
Если я Вас правильно понял, то это то что Вам нужно.

3

Re: Всплывающее окно при добавлении товара в корзину

Спасибо! Постараюсь разобраться, отпишусь если что-то не пойдет.

Re: Всплывающее окно при добавлении товара в корзину

Хорошо.