document.addEventListener('DOMContentLoaded', () => {
// Add color picker to DOM
const colorPicker = document.createElement('div');
colorPicker.className = 'color-picker-container';
colorPicker.innerHTML = `
`;
document.body.appendChild(colorPicker);
// Color picker functionality
const bgColorPicker = document.getElementById('bgColorPicker');
bgColorPicker.addEventListener('input', (e) => {
document.body.style.backgroundColor = `${e.target.value}33`; // Add transparency
});
// Initialize tooltips
const tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]'));
tooltipTriggerList.map(function (tooltipTriggerEl) {
return new bootstrap.Tooltip(tooltipTriggerEl);
});
// Smooth scrolling for anchor links
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
anchor.addEventListener('click', function (e) {
e.preventDefault();
document.querySelector(this.getAttribute('href')).scrollIntoView({
behavior: 'smooth'
});
});
});
// Add animation class to elements when they come into view
const animateOnScroll = () => {
const elements = document.querySelectorAll('.animate-on-scroll');
elements.forEach(element => {
const elementPosition = element.getBoundingClientRect().top;
const screenPosition = window.innerHeight / 1.3;
if (elementPosition < screenPosition) {
element.classList.add('fade-in');
}
});
};
window.addEventListener('scroll', animateOnScroll);
animateOnScroll(); // Run once on page load
});