-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscript.js
More file actions
58 lines (52 loc) · 2.19 KB
/
script.js
File metadata and controls
58 lines (52 loc) · 2.19 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
// ================================
// 1. Animations bulles & cartes
// ================================
document.querySelectorAll('.bubble').forEach(bubble => {
bubble.addEventListener('mouseenter', () => bubble.classList.add('active'));
bubble.addEventListener('mouseleave', () => bubble.classList.remove('active'));
});
const resetTransform = card => (card.style.transform = '');
document.querySelectorAll('.card').forEach(card => {
card.addEventListener('mousemove', e => {
const rect = card.getBoundingClientRect();
const x = e.clientX - rect.left - rect.width / 2;
const y = e.clientY - rect.top - rect.height / 2;
card.style.transform = `rotateX(${-y/20}deg) rotateY(${x/20}deg)`;
});
card.addEventListener('mouseleave', () => resetTransform(card));
card.addEventListener('click', () => resetTransform(card));
});
// 2. Visionneuse PDF.js (CV.pdf à la racine)
const PDF_URL = 'CV.pdf';
const modal = document.getElementById('cv-modal');
const canvas = document.getElementById('pdf-canvas');
const ctx = canvas.getContext('2d');
const cvLink = document.getElementById('cv_button');
// Ouvre le modal et affiche la page 1
cvLink.addEventListener('click', async e => {
console.log('Click sur le bouton CV');
e.preventDefault(); // empêche la navigation par défaut
modal.style.display = 'block'; // Forcer l'affichage du modal
console.log('Modal affiché');
try {
console.log('Chargement du PDF:', PDF_URL);
const pdf = await pdfjsLib.getDocument(PDF_URL).promise;
console.log('PDF chargé');
const page = await pdf.getPage(1);
const scale = 1.5;
const vp = page.getViewport({ scale });
canvas.width = vp.width;
canvas.height = vp.height;
await page.render({ canvasContext: ctx, viewport: vp }).promise;
console.log('Rendu du PDF terminé');
} catch (err) {
console.error('Erreur détaillée:', err);
alert('Impossible de charger le CV 😢\nErreur: ' + err.message);
}
});
// Ferme le modal et nettoie le canvas
document.getElementById('close-btn').addEventListener('click', () => {
console.log('Fermeture du modal');
modal.style.display = 'none';
ctx.clearRect(0, 0, canvas.width, canvas.height);
});