Files
AtomicOld/design/atomic/js/shopcart-view.js

63 lines
3.3 KiB
JavaScript
Raw Normal View History

2026-02-15 18:29:53 +03:00
//(function($) {
// // корзина каталога, переключение видов
// function topCart(update) {
// var notempty = $('#top-shopcart').hasClass('notempty'); // пустая ли корзина
// if ((update == 0 && (notempty)) || update == 1) //если корзина не пустая (при загрузке и скроллинге страницы) или по событию добавления товара
// {
// if ($(window).scrollTop() > 120) { //если скроллинг страницы более 120px (высота корзины "в шапке")
// $('#top-shopcart').addClass('always-on-top'); // вкл. корзину
// } else { //если скроллинг страницы менее 120px
// $('#top-shopcart').removeClass('always-on-top'); // откл. корзину
// }
// }
// if ($('body').hasClass('mobile') && !$('body').hasClass('tablet')) { //если мобильный телефон но не планшет
// $('#top-shopcart').addClass('always-on-top'); // обратно вкл. корзину
// $('body').css('margin-top', '50px'); // отодвигаем тело документа на 75px (высота корзины "всегда на виду")
// }
// }
// $(document).ready(function() {
// topCart(0);
// });
// $(window).scroll(function() {
// topCart(0);
// });
// $(document).on("update.shopcart", function() {
// topCart(1);
// });
//})(jQuery);
(function($) {
// корзина каталога, переключение видов
function topCart(updateCart) {
var topShopcart = $('#top-shopcart'), // корзина
alwaysOnTopClass = 'always-on-top', // класс для корзины "всегда на виду"
howScrollToEnable = 120, // прокрутка до включения корзины "всегда на виду"
alwaysOnTopHeight = topShopcart.outerHeight(true), // высота корзины "всегда на виду"
notEmptyCart = topShopcart.hasClass('notempty'), // пустая ли корзина?
whatsHappening = (updateCart) ? 'updateCart' : 'windowScrollOrDocumentReady', // что происходит?
doAction = ((whatsHappening == 'windowScrollOrDocumentReady' && notEmptyCart) || whatsHappening == 'updateCart'), // выполнять?
scrollDown = ($(window).scrollTop() > howScrollToEnable), // прокрутка страницы больше прокрутки до включения
mobilePhone = ($('body').hasClass('mobile') && !$('body').hasClass('tablet')); // мобильный телефон?
if (doAction)
{
(scrollDown) ? topShopcart.addClass(alwaysOnTopClass) : topShopcart.removeClass(alwaysOnTopClass);
}
if (mobilePhone)
{
topShopcart.addClass(alwaysOnTopClass);
$('body').css('margin-top', alwaysOnTopHeight + 'px');
}
}
$(document).ready(function() {
topCart(false);
});
$(window).scroll(function() {
topCart(false);
});
$(document).on("update.shopcart", function() {
topCart(true);
});
})(jQuery);