347 lines
8.5 KiB
JavaScript
347 lines
8.5 KiB
JavaScript
// GLOBALFUNC
|
|
function globalHandler() {
|
|
$('#menu').mmenu();
|
|
setTimeout(function () {
|
|
$('#menu').removeClass("d-none");
|
|
}, 500)
|
|
footerArccodion();
|
|
}
|
|
globalHandler();
|
|
|
|
function toogleSearchBar() {
|
|
$('.header-search-box').toggleClass('d-none');
|
|
}
|
|
|
|
function footerArccodion() {
|
|
document.querySelectorAll(".accordion").forEach((acc) => {
|
|
acc.addEventListener("click", function () {
|
|
const nextEl = this.nextElementSibling;
|
|
if (nextEl.style.maxHeight) {
|
|
nextEl.style.maxHeight = null;
|
|
nextEl.style.marginBottom = "0px";
|
|
} else {
|
|
nextEl.style.maxHeight = nextEl.scrollHeight + "px";
|
|
nextEl.style.marginBottom = "10px";
|
|
}
|
|
});
|
|
});
|
|
}
|
|
|
|
function viewMoreContent(target) {
|
|
let htmlStaticBlock = $(target).find(".static-html");
|
|
let viewMoreBtn = $(target).find(".js-view-more-content");
|
|
|
|
htmlStaticBlock.toggleClass("max-height-none").toggleClass("blur");
|
|
viewMoreBtn.html() === "Xem tất cả +" ? viewMoreBtn.html("Thu gọn -") : viewMoreBtn.html("Xem tất cả +");
|
|
if (!$(".static-html").hasClass("max-height-none")) document.querySelector(target).scrollIntoView({ behavior: 'smooth' });
|
|
}
|
|
|
|
// HOMEAPGE FUNC
|
|
function homepageHandler() {
|
|
swiperSectionHero();
|
|
swiperSectionBrand();
|
|
swiperSectionDealBanner();
|
|
//swiperDealList();
|
|
}
|
|
homepageHandler();
|
|
|
|
function swiperSectionHero() {
|
|
new Swiper(".swiper-section-hero", {
|
|
spaceBetween: 10,
|
|
rewind: true,
|
|
speed: 1000,
|
|
autoplay: {
|
|
delay: 2500,
|
|
disableOnInteraction: false,
|
|
pauseOnMouseEnter: "true",
|
|
},
|
|
pagination: {
|
|
el: ".swiper-pagination",
|
|
clickable: true,
|
|
},
|
|
});
|
|
}
|
|
|
|
function swiperSectionBrand() {
|
|
new Swiper(".swiper-section-banner", {
|
|
spaceBetween: 0,
|
|
slidesPerView: 4,
|
|
rewind: true,
|
|
speed: 1000,
|
|
autoplay: {
|
|
delay: 2500,
|
|
disableOnInteraction: false,
|
|
pauseOnMouseEnter: "true",
|
|
},
|
|
});
|
|
}
|
|
|
|
function swiperDealList() {
|
|
new Swiper(".swiper-deal-list", {
|
|
direction: 'vertical',
|
|
spaceBetween: 10,
|
|
slidesPerView: 3,
|
|
rewind: true,
|
|
speed: 1000,
|
|
autoplay: {
|
|
delay: 2500,
|
|
disableOnInteraction: false,
|
|
pauseOnMouseEnter: "true",
|
|
},
|
|
});
|
|
}
|
|
|
|
function swiperSectionDealBanner() {
|
|
new Swiper(".swiper-section-deal-banner", {
|
|
spaceBetween: 10,
|
|
slidesPerView: 1,
|
|
rewind: true,
|
|
speed: 1000,
|
|
autoplay: {
|
|
delay: 2500,
|
|
disableOnInteraction: false,
|
|
pauseOnMouseEnter: "true",
|
|
},
|
|
breakpoints: {
|
|
768: {
|
|
slidesPerView: 2,
|
|
},
|
|
},
|
|
});
|
|
}
|
|
|
|
// CATEGORY
|
|
function categoryHandler() {
|
|
$('.js-filter-title').click(function () {
|
|
var check = $(this).parents('.item');
|
|
if (check.hasClass('active') == true) {
|
|
check.removeClass('active');
|
|
$('.product-cate-bannner, .box-product-hot, .p-filter-group').removeClass('active');
|
|
} else {
|
|
$('.filter-list-box .item').removeClass('active')
|
|
$(this).parents('.item').addClass('active')
|
|
$('.product-cate-bannner, .box-product-hot, .p-filter-group').addClass('active');
|
|
}
|
|
});
|
|
|
|
$('.js-sort-check .sort-by-list a').each(function () {
|
|
if ($(this).hasClass('current') == true) {
|
|
var name = $(this).text();
|
|
$('.js-sort-check span').text(name)
|
|
}
|
|
});
|
|
|
|
$('.js-filter-selected').click(function () {
|
|
if ($(this).hasClass('current') == true) {
|
|
$(this).removeClass('current');
|
|
} else {
|
|
$(this).parents('.js-filter-item').find('.js-filter-selected').removeClass('current');
|
|
$(this).addClass('current');
|
|
}
|
|
});
|
|
|
|
$(".popup-filter-group").on("click", function (e) {
|
|
if (e.target === document.querySelector(".popup-filter-group")) {
|
|
$(".popup-filter-group").css("display", "none");
|
|
$("body").removeClass("overflow-hidden");
|
|
}
|
|
})
|
|
|
|
setTimeout(function () {
|
|
filter_fixed();
|
|
}, 500);
|
|
}
|
|
categoryHandler();
|
|
|
|
function filterPopupListViewMore() {
|
|
$(".list-holder").each(function () {
|
|
let summaryHeight = $(this).height();
|
|
if (summaryHeight >= 133) {
|
|
} else {
|
|
$(this).next().css("display", "none");
|
|
}
|
|
})
|
|
}
|
|
|
|
function showFilterMoreBtn(_this) {
|
|
$(_this).prev().toggleClass("view-more");
|
|
let viewMoreEle = $(_this).find(".js-view-more-popup");
|
|
let viewMoreIcon = $(_this).find(".fa-angle-double-down");
|
|
|
|
viewMoreEle.html() === "Xem thêm" ? viewMoreEle.html("Thu gọn") : viewMoreEle.html("Xem thêm");
|
|
viewMoreIcon.toggleClass("rotate-90deg");
|
|
}
|
|
|
|
function _getLink(current_url) {
|
|
var brand = 'brand=';
|
|
var max = '&max=';
|
|
var min = '&min=';
|
|
var attr = '&filter=';
|
|
|
|
if ($('.js-brand-list a').hasClass('current') == true) {
|
|
brand = '&brand=' + $('.js-brand-list .current').attr('data-brand');
|
|
}
|
|
|
|
if ($('.js-price-list a').hasClass('current') == true) {
|
|
max = '&max=' + $('.js-price-list .current').attr('data-max');
|
|
}
|
|
|
|
if ($('.js-price-list a').hasClass('current') == true) {
|
|
min = '&min=' + $('.js-price-list .current').attr('data-min');
|
|
}
|
|
|
|
$('.js-attr-list .current').each(function () {
|
|
attr += $(this).attr('data-attr') + '_'
|
|
});
|
|
|
|
var sort = '';
|
|
if (GetURLParameter('sort')) {
|
|
sort = '&sort=' + GetURLParameter('sort')
|
|
}
|
|
|
|
var link = current_url + brand + max + min + attr + sort;
|
|
|
|
location.href = link;
|
|
}
|
|
|
|
function filter_fixed() {
|
|
var topTab = $("#js-p-filter-group").offset();
|
|
if (topTab) {
|
|
var headerHeight = $('header').height();
|
|
|
|
$(window).scroll(function () {
|
|
if ($(window).scrollTop() > 400) {
|
|
$(".box-filter-list.box-filter-attribute-list").addClass("fixed");
|
|
$('#js-filter-block').show();
|
|
} else {
|
|
$(".box-filter-list.box-filter-attribute-list").removeClass("fixed");
|
|
$('#js-filter-block').hide();
|
|
}
|
|
});
|
|
}
|
|
}
|
|
|
|
function _openFilter() {
|
|
$('.popup-filter-group').fadeIn(150);
|
|
$('body').addClass('overflow-hidden');
|
|
$('#js-p-filter-group .item.active').removeClass('active');
|
|
$('.product-cate-bannner, .box-product-hot, .p-filter-group').removeClass('active');
|
|
filterPopupListViewMore();
|
|
}
|
|
|
|
function _closeFilter() {
|
|
$('.popup-filter-group').hide();
|
|
$('body').removeClass('overflow-hidden bg-filter');
|
|
}
|
|
|
|
function GetURLParameter(sParam) {
|
|
var sPageURL = window.location.search.substring(1);
|
|
var sURLVariables = sPageURL.split('&');
|
|
for (var i = 0; i < sURLVariables.length; i++) {
|
|
var sParameterName = sURLVariables[i].split('=');
|
|
if (sParameterName[0] == sParam) {
|
|
return sParameterName[1];
|
|
}
|
|
}
|
|
}
|
|
|
|
// PRODUCT DETAIL
|
|
function detailHandler() {
|
|
relativeProductSwiper();
|
|
ratingHover();
|
|
}
|
|
detailHandler();
|
|
|
|
let galleryThumbs = new Swiper(".gallery-thumbs", {
|
|
spaceBetween: 10,
|
|
slidesPerView: 5,
|
|
slideToClickedSlide: true,
|
|
freeMode: true,
|
|
watchSlidesProgress: true,
|
|
centerInsufficientSlides: true,
|
|
});
|
|
|
|
let galleryTop = new Swiper(".gallery-top", {
|
|
spaceBetween: 10,
|
|
slidesPerView: 1,
|
|
speed: 1000,
|
|
autoplay: {
|
|
delay: 2500,
|
|
disableOnInteraction: false,
|
|
pauseOnMouseEnter: "true",
|
|
},
|
|
thumbs: {
|
|
swiper: galleryThumbs,
|
|
},
|
|
// AUTO SILDED AT FISRT AND END
|
|
on: {
|
|
slideChange: function () {
|
|
let activeIndex = this.activeIndex + 1;
|
|
|
|
let activeSlide = document.querySelector(
|
|
`.gallery-thumbs .swiper-slide:nth-child(${activeIndex})`
|
|
);
|
|
let nextSlide = document.querySelector(
|
|
`.gallery-thumbs .swiper-slide:nth-child(${activeIndex + 1})`
|
|
);
|
|
let prevSlide = document.querySelector(
|
|
`.gallery-thumbs .swiper-slide:nth-child(${activeIndex - 1})`
|
|
);
|
|
|
|
if (
|
|
nextSlide &&
|
|
!nextSlide.classList.contains("swiper-slide-visible")
|
|
) {
|
|
this.thumbs.swiper.slideNext();
|
|
} else if (
|
|
prevSlide &&
|
|
!prevSlide.classList.contains("swiper-slide-visible")
|
|
) {
|
|
this.thumbs.swiper.slidePrev();
|
|
}
|
|
},
|
|
},
|
|
});
|
|
|
|
function toggleModal(target) {
|
|
$(target).toggleClass('d-none');
|
|
$("body").toggleClass('overflow-hidden');
|
|
}
|
|
|
|
function relativeProductSwiper() {
|
|
new Swiper(".swiper-relative-product", {
|
|
spaceBetween: 10,
|
|
slidesPerView: 2,
|
|
rewind: true,
|
|
speed: 1000,
|
|
autoplay: {
|
|
delay: 2500,
|
|
disableOnInteraction: false,
|
|
pauseOnMouseEnter: "true",
|
|
},
|
|
breakpoints: {
|
|
768: {
|
|
slidesPerView: 3,
|
|
},
|
|
},
|
|
});
|
|
}
|
|
|
|
function ratingHover() {
|
|
$('.rating-star').hover(function () {
|
|
$(this).addClass('hover');
|
|
$('#star_tip').html($(this).attr('data-title'))
|
|
},
|
|
function () {
|
|
$(this).removeClass('hover');
|
|
$('#star_tip').html($('.rating-review input:checked').attr('data-title'));
|
|
})
|
|
}
|
|
|
|
function toogleReviewForm(target) {
|
|
$(target).toggleClass("d-block");
|
|
}
|
|
|
|
|
|
|