-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtravel_temp.js
119 lines (102 loc) · 3.46 KB
/
travel_temp.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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
document.addEventListener("DOMContentLoaded", () => {
/* dynamic load */
const travelSummary = document.querySelector(".main");
// json variable for injecting html into DOM
const travel_data = [
{
day: "Day 1",
description: "description",
// background_image: "assets/images/travel/trip1/national_zoological_park.jpg"
background_image: "assets/images/travel/trip1/street.jpg"
},
{
day: "Day 2",
description: "description",
background_image: "assets/images/travel/trip1/qutub_minar.jpg"
},
{
day: "Day 3",
description: "description",
background_image: "assets/images/travel/trip1/lotus_temple.jpg"
},
{
day: "Day 4",
description: "description",
background_image: "assets/images/travel/trip1/old_fort.jpg"
},
{
day: "Day 5",
description: "description",
background_image: "assets/images/travel/trip1/red_fort.jpg"
}
];
// AOS.init();
const fillData = () => {
let output = "";
travel_data.forEach(
({ day, description, background_image }, index) => {
output += `
<div class="el">
<div class="el__overflow">
<div class="el__inner">
<div class="el__bg"></div>
<div class="el__preview-cont">
<h2 class="el__heading">${day}</h2>
</div>
<div class="el__content">
<div class="el__text">${description}</div>
<div class="el__close-btn"></div>
</div>
</div>
</div>
<div class="el__index">
<div class="el__index-back">${index + 1}</div>
<div class="el__index-front">
<div class="el__index-overlay" data-index="${index + 1}">${index + 1}</div>
</div>
</div>
</div>`
/* adding style to stylesheet */
document.styleSheets[0].addRule(`.el:nth-child(${index + 1}) .el__bg:before`, `background-image: url("${background_image}");`);
});
travelSummary.innerHTML = output;
};
fillData();
// document.addEventListener("DOMContentLoaded", fillData);
/* dynamic load */
var $cont = document.querySelector('.cont');
var $elsArr = [].slice.call(document.querySelectorAll('.el'));
var $closeBtnsArr = [].slice.call(document.querySelectorAll('.el__close-btn'));
setTimeout(function () {
$cont.classList.remove('s--inactive');
}, 200);
$elsArr.forEach(function ($el) {
$el.addEventListener('click', function () {
if (this.classList.contains('s--active')) return;
/* added */
const mediaQuery = window.matchMedia('(max-width: 700px)')
// Check if the media query is true
if (mediaQuery.matches) {
$cont.style.height = "80vh";
}
else {
$cont.style.height = "120vh";
}
document.styleSheets[0].addRule(".el__bg:before", "background-repeat: no-repeat; background-size: contain !important; background-position: center center !important;");
/* added */
$cont.classList.add('s--el-active');
this.classList.add('s--active');
});
});
$closeBtnsArr.forEach(function ($btn) {
$btn.addEventListener('click', function (e) {
/* added */
$cont.style.height = "70vh";
document.styleSheets[0].addRule(".el__bg:before", "background-size: 100% 100% !important;");
/* added */
e.stopPropagation();
$cont.classList.remove('s--el-active');
document.querySelector('.el.s--active').classList.remove('s--active');
});
});
});