MyTelmi.html/js/script.js

187 lines
6.1 KiB
JavaScript

$(document).ready(function() {
// Watch slider animation
let currentSlide = 0;
const slides = $('.slide');
const totalSlides = slides.length;
function showSlide(n) {
slides.removeClass('active');
slides.eq(n).addClass('active');
}
function nextSlide() {
currentSlide = (currentSlide + 1) % totalSlides;
showSlide(currentSlide);
}
// Start auto-rotation every 3 seconds
setInterval(nextSlide, 3000);
// Initialize first slide
showSlide(0);
});
// Mobile menu toggle
const mobileMenuBtn = document.querySelector('.mobile-menu-btn');
const navLinks = document.querySelector('.nav-links');
mobileMenuBtn.addEventListener('click', () => {
navLinks.classList.toggle('active');
});
// Close mobile menu when clicking on a link
document.querySelectorAll('.nav-link').forEach(link => {
link.addEventListener('click', () => {
navLinks.classList.remove('active');
});
});
// Smooth scrolling for anchor links
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
anchor.addEventListener('click', function(e) {
e.preventDefault();
const targetId = this.getAttribute('href');
if (targetId === '#') return;
const targetElement = document.querySelector(targetId);
if (targetElement) {
window.scrollTo({
top: targetElement.offsetTop - 90,
behavior: 'smooth'
});
}
});
});
// Scroll functionality for benefits cards
const scrollLeftBtn = document.querySelector('.scroll-btn.left');
const scrollRightBtn = document.querySelector('.scroll-btn.right');
const cardsWrapper = document.querySelector('.cards-wrapper');
scrollLeftBtn.addEventListener('click', () => {
cardsWrapper.scrollBy({ left: -300, behavior: 'smooth' });
});
scrollRightBtn.addEventListener('click', () => {
cardsWrapper.scrollBy({ left: 300, behavior: 'smooth' });
});
// Scroll functionality for reviews
const reviewLeftBtn = document.querySelector('.review-scroll-btn.left');
const reviewRightBtn = document.querySelector('.review-scroll-btn.right');
const reviewsWrapper = document.querySelector('.reviews-wrapper');
reviewLeftBtn.addEventListener('click', () => {
reviewsWrapper.scrollBy({ left: -350, behavior: 'smooth' });
});
reviewRightBtn.addEventListener('click', () => {
reviewsWrapper.scrollBy({ left: 350, behavior: 'smooth' });
});
// Auto-hide scroll buttons when at edge
function checkScrollPosition() {
// For benefits cards
if (cardsWrapper.scrollLeft <= 10) {
scrollLeftBtn.style.opacity = '0.5';
scrollLeftBtn.style.cursor = 'default';
} else {
scrollLeftBtn.style.opacity = '1';
scrollLeftBtn.style.cursor = 'pointer';
}
if (cardsWrapper.scrollLeft >= cardsWrapper.scrollWidth - cardsWrapper.clientWidth - 10) {
scrollRightBtn.style.opacity = '0.5';
scrollRightBtn.style.cursor = 'default';
} else {
scrollRightBtn.style.opacity = '1';
scrollRightBtn.style.cursor = 'pointer';
}
// For reviews
if (reviewsWrapper.scrollLeft <= 10) {
reviewLeftBtn.style.opacity = '0.5';
reviewLeftBtn.style.cursor = 'default';
} else {
reviewLeftBtn.style.opacity = '1';
reviewLeftBtn.style.cursor = 'pointer';
}
if (reviewsWrapper.scrollLeft >= reviewsWrapper.scrollWidth - reviewsWrapper.clientWidth - 10) {
reviewRightBtn.style.opacity = '0.5';
reviewRightBtn.style.cursor = 'default';
} else {
reviewRightBtn.style.opacity = '1';
reviewRightBtn.style.cursor = 'pointer';
}
}
cardsWrapper.addEventListener('scroll', checkScrollPosition);
reviewsWrapper.addEventListener('scroll', checkScrollPosition);
window.addEventListener('resize', checkScrollPosition);
// Initial check
checkScrollPosition();
// Watch slider functionality
$(document).ready(function() {
const slider = $('.cta-image');
const images = [
'img/watch_slide_6.png',
'img/watch_slide_7.png',
'img/watch_slide_8.png',
'img/watch_slide_9.png',
'img/watch_slide_10.png',
'img/watch_slide_11.png',
'img/watch_slide_12.png',
'img/watch_slide_13.png',
'img/watch_slide_14.png',
'img/watch_slide_15.png'
];
// Replace img with slider container
slider.html('<div class="slider-container"></div>');
const container = $('.slider-container');
// Add all images to slider (hidden except first)
images.forEach((img, index) => {
container.append(`<img src="${img}" class="slide ${index === 0 ? 'active' : ''}" alt="Telmi Watch">`);
});
// Auto-rotate slides
let currentIndex = 0;
setInterval(() => {
currentIndex = (currentIndex + 1) % images.length;
$('.slide.active').fadeOut(500, function() {
$(this).removeClass('active');
$(`.slide:eq(${currentIndex})`).fadeIn(500).addClass('active');
});
}, 3000);
// Modal functionality
let currentModalIndex = 0;
$('.slide').click(function() {
currentModalIndex = $(this).index('.slide');
updateModalImage();
$('.modal-overlay').addClass('active');
});
function updateModalImage() {
const imgSrc = images[currentModalIndex];
$('.modal-image').attr('src', imgSrc);
}
$('.modal-nav.prev').click(function(e) {
e.stopPropagation();
currentModalIndex = (currentModalIndex - 1 + images.length) % images.length;
updateModalImage();
});
$('.modal-nav.next').click(function(e) {
e.stopPropagation();
currentModalIndex = (currentModalIndex + 1) % images.length;
updateModalImage();
});
$('.close-modal').click(function() {
$('.modal-overlay').removeClass('active');
});
// Close modal when clicking outside image
$(document).click(function(e) {
if ($(e.target).hasClass('modal-overlay')) {
$('.modal-overlay').removeClass('active');
}
});
// Close modal with ESC key
$(document).keyup(function(e) {
if (e.key === "Escape") {
$('.modal-overlay').removeClass('active');
}
});
});