Вы здесь

Товар "улетает" в корзину - дополнение для модуля Fast Ajax Add to Cart

Для отличного модуля ajax корзины от xandeadx сделал небольшое дополнение. Картинка товара "улетает" в корзину, если добавление прошло удачно.

Скачать модуль можно тут

 

Особенно стоит обратить внимание на файл commerce_product_cart_fly.js. В этом файле как раз выбираются контейнеры из которых необходимо брать картинки.

/**
 * @file
 * Наша кастомная команда, которая отправляет продукт в корзину
 */
(function($) {
 
  /**
  * Отправляем продукт в корзину
  */
  Drupal.ajax.prototype.commands.product_cart_fly = function(ajax, response, status) {
    var selector = ajax['selector'];
 
    if(response.type == 'product'){
 
      // если это страница товара, то выбираем данную картинку
      var img = $(selector).closest('.product-image-description').find('.field-name-field-product-image img');
    }
    else{
      /* 
       * на всех остальных страницах выбираем картинку из контейнера .views-row
       * предполагается, что на страницах товаров есть только вьюсы с товарами
       */
      var img = $(selector).closest('.views-row').find('.views-field-field-product-image img');
    }
    $(img[0])
      .clone()
      .css({'position' : 'absolute', 'z-index' : '11100', top: $(selector).offset().top-100, left:$(selector).offset().left-50})
      .appendTo("body")
      .animate({opacity: 0.05,
        left: $("#block-commerce-cart-cart").offset()['left'],
        top: $("#block-commerce-cart-cart").offset()['top'],
        width: 20}, 1000, function() {
        $(this).remove();
      });
  }
 
})(jQuery);

 

Тэги: 
Поделиться:

Комментарии

1) поменяйте в info dependencies[] = commerce_fast_ajax_atc иначе не включается даже

2) не срабатывает commerce_product_cart_fly.js  даже alert в начале

 

Обсудил с Василием. У него модуль заработал, когда он сделал следующие манипуляции:

  1. в .info dependencies[] = commerce_fast_ajax_atc нужно
  2. имя скрипта product_cart_fly.js должно быть

Угум. Всё правильно.

Возможно ещё придётся классы под себя поправить и начало полёта сдлеать от img[0], а не от кнопки старта.

Спасибо за мелким, но довольно полезный модуль!

Ну и где ваши улетания? ничего ж не работает или хотя бы пример прикрепили

модуль так кривой и лежит, какие классы править?

Вот эти две строки необходимо поправить под себя(добавить правильные селекторы картинок):

// если это страница товара, то выбираем данную картинку
var img = $(selector).closest('.product-image-description').find('.field-name-field-product-image img');
 
 
/* 
 * на всех остальных страницах выбираем картинку из контейнера .views-row
 * предполагается, что на страницах товаров есть только вьюсы с товарами
 */
var img = $(selector).closest('.views-row').find('.views-field-field-product-image img');

Пример можно посмотреть тут: http://salus-moscow.ru/

Спасибо за ответ, но что-то не получается - смотрел на код вашего примера и не пойму откуда вы берёте класс .product-image-description

собственно вот, что появляется при покупке https://yadi.sk/i/r4tXfT4S3KJTSX и пикчи не уходят

Пардон за флуд) Ура, всё получилось - оказывается id корзины отличался, прописал и всё заработало, Спасибо!

Оставить комментарий