-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
88 lines (85 loc) · 3.22 KB
/
index.js
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
document.getElementById('mainA').addEventListener('click', event => event.preventDefault())
const $slides = document.querySelectorAll('.js-slide')
let nowSlide = 0
//а теперь двигаем блоки в таймлайне
const $timelineCentures = document.querySelectorAll('.century-content')
let lastUpdate
let lastUpdateMins
window.onload = () => {
try {
lastUpdate = localStorage.getItem('lastUpdate')
lastUpdateMins = localStorage.getItem('lastUpdateMins')
let date = new Date()
if (Math.abs(parseInt(lastUpdateMins) - date.getMinutes()) < 20) {
nowSlide = localStorage.getItem('slideNum')
slider()
}
} catch(e) {}
}
function direction(direction) {
switch(direction) {
case '+1':
nowSlide++
if (nowSlide >= $slides.length) {
nowSlide = $slides.length - 1
}
localStorage.setItem('slideNum', nowSlide)
localStorage.setItem('lastUpdate', new Date().getHours())
localStorage.setItem('lastUpdateMins', new Date().getMinutes())
console.log(typeof(lastUpdate))
slider()
break
case '-1':
nowSlide--
if (nowSlide < 0) {
nowSlide = 0
}
localStorage.setItem('slideNum', nowSlide)
localStorage.setItem('lastUpdate', new Date().getHours())
localStorage.setItem('lastUpdateMins', new Date().getMinutes())
slider()
break
default:
break
}
}
function slider() {
const $btnLeft = document.getElementById('left')
const $btnRight = document.getElementById('right')
for (let i = 0, length = $slides.length; i < length; i++) {
$slides[i].classList.add('none')
}
$slides[nowSlide].style.opacity = '0'
$slides[nowSlide].classList.remove('none')
$timelineCentures[nowSlide].scrollIntoView({ block: "center", behavior: "smooth" })
let counter = 1
let interval1 = setInterval(() => {
$slides[nowSlide].style.opacity = (0.2 * counter).toString()
counter++
if (counter >= 6) clearInterval(interval1)
}, 100)
$btnLeft.classList.remove('none')
$btnRight.classList.remove('none')
if (nowSlide == 0) $btnLeft.classList.add('none')
if (nowSlide == $slides.length - 1) $btnRight.classList.add('none')
}
/*То что по-идее должно быть другим скриптом но у меня ничего не получилось*/
// const timeline = document.querySelector('.timeline')
// const centures = document.querySelectorAll('.centures')
// timeline.addEventListener('scroll', () => {
// const scrollPosition = timeline.scrollWidth;
// console.log(centures)
// let iWannaTo
// for (let i = 0; i < scrollPosition / centures[0].clientWidth / timeline.cl; i++) {
// const rect = centures[i].getBoundingClientRect()
// if (rect.x + 10 < 0) continue
// if (rect.x + centures[i].scrollWidth - 10 > timeline.clientWidth) continue
// iWannaTo = i
// }
// try {
// nowSlide = iWannaTo
// slider()
// } finally {
// console.log('не получилось')
// }
// })