Files
PresentCorpo/views/homePages/homeMain.js
T
2026-06-03 03:42:39 +07:00

122 lines
3.4 KiB
JavaScript

// views/homePages/homeMain.js
// MANUAL BANNER SLIDESHOW FUNCTIONALITY
document.addEventListener("DOMContentLoaded", function () {
const bannerContainer = document.querySelector(".banner-container");
const bannerItems = document.querySelectorAll(".banner-item");
const dots = document.querySelectorAll(".banner-dot");
const prevBtn = document.querySelector(".banner-prev");
const nextBtn = document.querySelector(".banner-next");
const vimeoIframe = document.querySelector(".video-container iframe");
let currentSlide = 0;
const totalSlides = bannerItems.length;
let vimeoPlayer = null;
// Initialize Vimeo Player
function initializeVimeoPlayer() {
if (typeof Vimeo !== "undefined" && vimeoIframe) {
vimeoPlayer = new Vimeo.Player(vimeoIframe);
// Set volume to 100% when video is ready
vimeoPlayer.on("loaded", function () {
vimeoPlayer.setVolume(1).catch((e) => {
console.log("Volume setting failed:", e);
});
});
// Play video when it becomes the active slide
vimeoPlayer.on("play", function () {
console.log("Video is playing with sound");
});
}
}
// Function to update slide position
function updateSlide() {
bannerContainer.style.transform = `translateX(-${currentSlide * 20}%)`;
// Update active dot
dots.forEach((dot, index) => {
dot.classList.toggle("active", index === currentSlide);
});
// Handle video playback
if (vimeoPlayer) {
if (currentSlide === 0) {
// If video slide is active, play the video with sound
vimeoPlayer.play().catch((e) => {
console.log("Vimeo play failed:", e);
});
} else {
// If not on video slide, pause the video
vimeoPlayer.pause().catch((e) => {
console.log("Vimeo pause failed:", e);
});
}
}
}
// Next slide function
function nextSlide() {
currentSlide = (currentSlide + 1) % totalSlides;
updateSlide();
}
// Previous slide function
function prevSlide() {
currentSlide = (currentSlide - 1 + totalSlides) % totalSlides;
updateSlide();
}
// Go to specific slide
function goToSlide(slideIndex) {
currentSlide = slideIndex;
updateSlide();
}
// Event listeners for navigation buttons
prevBtn.addEventListener("click", prevSlide);
nextBtn.addEventListener("click", nextSlide);
// Event listeners for dot indicators
dots.forEach((dot, index) => {
dot.addEventListener("click", () => {
goToSlide(index);
});
});
// Keyboard navigation
document.addEventListener("keydown", (e) => {
if (e.key === "ArrowLeft") {
prevSlide();
} else if (e.key === "ArrowRight") {
nextSlide();
}
});
// Load Vimeo Player API
const vimeoScript = document.createElement("script");
vimeoScript.src = "https://player.vimeo.com/api/player.js";
vimeoScript.onload = initializeVimeoPlayer;
document.head.appendChild(vimeoScript);
// Initialize first slide
updateSlide();
});
// NEWS BULLETIN SECTION JS
document.addEventListener("DOMContentLoaded", () => {
const newsItems = document.querySelectorAll(".news-item");
// Add click event to navigate to article page for each news item
newsItems.forEach((newsItem) => {
newsItem.addEventListener("click", () => {
const articleUrl = newsItem.getAttribute("data-article-url");
if (articleUrl) {
window.location.href = articleUrl;
}
});
});
});