/*
* Name : main.js
* Version : 1.1.0
* Author : 1px studio
* Product : prime03
* Date : 2024-09-26
* Desc : multiple section (product/blog swiper, notice)
* -------------------------------------------------
*/
$(function(){
/* PRIME COMMON : s */
// script break in sub page
if (document.getElementById("isIndex")==null) { return; }
/* 레이어 팝업 */
(function e() {
function t(e) {
e.hide()
}
$(".px-layer-popup .btn-cookie-close").on("click", function(e) {
let i = $(this).closest(".px-layer-popup")
, s = i.attr("id");
e.preventDefault(),
$.cookie(s, "1", {
expires: 1
}),
t(i)
}),
$(".px-layer-popup .btn-normal-close").on("click", function(e) {
let i = $(this).closest(".px-layer-popup");
e.preventDefault(),
t(i)
})
}
)();
/* PRIME COMMON : e */
/* 스크롤 시 이벤트 */
gsap.registerPlugin(ScrollTrigger);
let bannerGsap = gsap.timeline();
bannerGsap.to(".banner-text .word-wrap .word", {scrollTrigger: {trigger: ".banner-text", scrub:3, start: "0% 80%", end: "100% 80%"}, transform: "translateY(0px)", opacity: 1, duration: 1, stagger: 0.1, ease: "power2.out"});
/* MAIN SLIDE swiper */
function main_slider() {
const progressCircle = document.querySelector(".main-slide .autoplay-progress svg.fill");
const autoplayDelay = 3500;
let main_swiper = new Swiper(".main-swiper", {
direction: "vertical",
speed: 1000,
loop: true,
slidesPerView: 1,
spaceBetween: 0,
allowTouchMove: false,
centeredSlides: true,
navigation: {
nextEl: ".main-slide .swiper-button-next",
prevEl: ".main-slide .swiper-button-prev",
},
pagination: {
el: ".main-slide .swiper-pagination",
},
navigation: {
nextEl: ".main-slide .m-next",
prevEl: ".main-slide .m-prev",
},
autoplay: {
delay: autoplayDelay,
disableOnInteraction: false
},
on: {
init : function () {
$('.main-swiper').addClass('load-init');
$(".main-slide .swiper-pagination").append('
');
},
autoplayTimeLeft(swiper, time, percentage) {
progressCircle.style.setProperty("--progress", 1-percentage);
},
slideChange: function(swiper) {
for (let i=0; i < swiper.slides.length; i++) {
let index = swiper.activeIndex==i ? 0 : swiper.activeIndex-i;
let half_height = swiper.height * 0.5;
let translate = index * half_height;
swiper.slides[i].querySelector('.main-slide-bg-wrap').style.transform = 'translate3d(0, ' + translate + 'px, 0)';
$('.main-swiper').removeClass('load-init');
}
$(".swiper-pause").removeClass("stop");
},
touchStart: function(swiper) {
for (let i = 0; i < swiper.slides.length; i++) {
swiper.slides[i].style.transition = '';
}
},
setTransition: function(swiper, speed) {
for (let i = 0; i < swiper.slides.length; i++) {
swiper.slides[i].style.transition = speed + 'ms';
swiper.slides[i].querySelector('.main-slide-bg-wrap').style.transition = speed + 'ms';
}
},
}
});
$(".swiper-pause").on("click", function(e){
$(this).toggleClass("stop");
if ($(this).hasClass("stop")) {
main_swiper.autoplay.pause();
} else {
main_swiper.autoplay.resume();
}
});
}
main_slider();
/* product 게시판 추출 */
function product_extraction(_id) {
if ($(_id+".article-list").length == 0) return;
let list = $(_id+".article-list > tbody > tr > td");
let html = ``;
let aos_delay = 0;
list.each(function(){
let href = $(this).find("a").attr("href");
let src = $(this).find(".board_output_imgs").attr("src");
let subject_tag = $(this).find(".board_output_gallery_subject a");
let desc_tag = $(this).find(".board_output_gallery_description");
let td = $(this).find("tr:last-child > td");
let subject = subject_tag.text().trim();
let desc = desc_tag.text().trim();
subject_tag.remove();
desc_tag.remove();
let category = td.text().trim();
html += `
`;
aos_delay += 150;
});
html += '
';
$(_id+".product-swiper").html(html);
$(_id+".article-list").remove();
}
/* PRODUCT swiper 슬라이드 */
function set_product_swiper() {
let product_list = $(".product");
product_list.each(function(){
let product_id = "#"+this.id+" ";
product_extraction(product_id);
new Swiper(product_id+".product-swiper", {
slidesPerView: "auto",
spaceBetween: 15,
slidesOffsetAfter: 15,
resizeObserver: false,
pagination: {
el: product_id+".swiper-pagination",
type: "progressbar",
},
navigation: {
nextEl: product_id+".p-navi-next",
prevEl: product_id+".p-navi-prev",
disabledClass: "p-navi-disabled",
},
});
})
}
set_product_swiper();
// 메인 비즈니스 섹션 슬라이드
var business_slide = new Swiper(".main-business-swiper", {
slidesPerView: "auto",
spaceBetween: 50,
centeredSlides: true,
loop: true,
autoplay: {
delay: 3500,
disableOnInteraction: false,
}
});
/* blog 게시판 추출 */
function blog_extraction(_id) {
if ($(_id+".article-list").length == 0) return;
let list = $(_id+".article-list tr");
let html = ``;
let aos_delay = 0;
list.each(function(i){
let href = $(this).find("a").attr("href");
let src = $(this).find(".board_output_imgs").attr("src");
let subject = $(this).find("td.bd_out1").text().trim();
let desc = $(this).find("td").eq(2).text().trim();
let date = $(this).find("td").eq(3).text();
let category = $(this).find("td").last().text();
let aos = i < 4 ? `data-aos="fade-zoom-in" data-aos-delay="${aos_delay}" data-aos-easing="ease-out-cubic"` : '';
html += `
`;
});
$(_id+".blog-swiper .swiper-wrapper").empty().html(html);
aos_delay += 150;
}
/* BLOG swiper 슬라이드 */
function set_blog_swiper() {
let blog_list = $(".blog");
blog_list.each(function(){
let blog_id = "#"+this.id+" ";
blog_extraction(blog_id);
new Swiper(blog_id+".blog-swiper", {
slidesPerView: 1,
spaceBetween: 0,
resizeObserver: false,
pagination: {
el: blog_id+".swiper-pagination",
type: "progressbar",
},
navigation: {
nextEl: blog_id+".b-navi-next",
prevEl: blog_id+".b-navi-prev",
disabledClass: "b-navi-disabled",
},
breakpoints: {
480: {
slidesPerView: 2,
spaceBetween: 10,
},
768: {
slidesPerView: 3,
spaceBetween: 10,
},
990: {
slidesPerView: 4,
spaceBetween: 15,
},
},
});
});
}
set_blog_swiper();
/* 공지사항 추출 */
function init_notice() {
if ($(".notice .article-list").length == 0) return;
let notice_list = $(".notice");
notice_list.each(function(){
let list = $(this).find(".article-list tr");
let html = "";
let aos_delay = 0;
list.each(function(i){
let a = $(this).find("a");
let href = a.attr("href");
let subject = a.text().trim();
let date = $(this).find("td").eq(2).text();
let desc = $(this).find("td").last().text();
let open = i == 0 ? "open" : "";
let line = i == 0 ? "n-line-1" : "n-line-2";
html += `
`;
});
$(this).find(".tbl").html(html);
$(this).find(".article-list").remove();
aos_delay += 150;
});
}
init_notice();
/* NOTICE open */
$("section.notice .n-title").on("click", function(e){
$(this).next(".n-text").toggleClass("open");
});
/* PRIME05 - product board + slide */
function productBoardExtraction(_id) {
if ($(_id+"table.article-list").length==0) {return;}
let gl = $(_id+"table.article-list > tbody > tr");
let boards = [];
gl.each((i, el) => {
let a = $(el).find(".board_output_gallery_img > a");
let t = $(el).find("tr:last-child > td");
let href = a.attr("href");
let src = a.find("img").attr("src");
let title_tag = t.find(".board_output_gallery_subject a");
let desc_tag = t.find(".board_output_gallery_description");
let title = title_tag.text().trim();
let desc = desc_tag.text().trim();
title_tag.remove();
desc_tag.remove();
let category = t.text().trim();
boards.push({category: category, title: title, desc: desc, href: href, src: src});
});
$(_id+"table.article-list").remove();
let code = '';
boards.forEach((board) => {
code += '';
});
$(_id+".product-swiper .swiper-wrapper").html(code);
}
function setProductSwiper(){
let product = $(".product-prime05");
$.each(product, function(i, dom) {
var dom_id = "#"+dom.id+" ";
productBoardExtraction(dom_id);
let product_swiper = new Swiper(dom_id+".product-swiper", {
slidesPerView: 1,
spaceBetween: 22,
freeMode: false,
navigation: {
nextEl: dom_id+".swiper-next",
prevEl: dom_id+".swiper-prev",
},
breakpoints: {
480: {
slidesPerView: 2,
},
768: {
slidesPerView: 3,
freeMode: {
enabled: true,
sticky: false,
},
},
992: {
slidesPerView: 4,
freeMode: {
enabled: true,
sticky: false,
},
},
},
});
});
}
setProductSwiper();
/* PRIME05 - product swiper mobile buttons */
$(".product-prime05 .swiper-mobile-buttons button").on("click", function(e){
if ($(this).hasClass("prev")) {
$(".product-prime05 .swiper-prev").trigger("click");
} else {
$(".product-prime05 .swiper-next").trigger("click");
}
});
function blogBoardExtraction(_id) {
if ($(_id+"table.article-list").length==0) {return;}
let gl = $(_id+"table.article-list > tbody > tr");
let regex = RegExp(/^\d{4}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])$/);
let boards = [];
gl.each((i, el) => {
let a = $(el).find("a");
let href = a.attr("href");
let src = a.find("img").attr("src");
let title = $(el).find(".bd_out1").text().trim();
let date = $(el).find("td").eq(3).text().trim();
if (regex.test(date)) {
date = date.substr(5,5).replace("-", ".");
}
boards.push({title: title, date: date, href: href, src: src});
});
$(_id+"table.article-list").remove();
let code1 = '';
let code2 = '
';
code2 += '
';
$(_id+".blog-box").html(code1 + code2);
}
function setBlogSwiper(){
let blog = $(".blog-prime05");
$.each(blog, function(i, dom) {
var dom_id = "#"+dom.id+" ";
blogBoardExtraction(dom_id);
});
}
setBlogSwiper();
/* PRIME05 - blog mouseover */
$(".blog-prime05 .blog-row").on("mouseover", function(e){
$(this).siblings(".blog-row").removeClass("active");
$(this).addClass("active");
let idx = $(this).index();
console.log("active", idx);
let imgs = $(this).parents(".blog-prime05").find(".blog-img img");
imgs.removeClass("active");
imgs.eq(idx).addClass("active");
});
AOS.init({
duration: 600,
once: true
});
});